Great, thanks for the added explanation. I've added a bit to your model that should do what you're wanting. The general idea is that a token is created for each time slot every day (repeating weekly). That token will have a specific day and time assigned to it that can be pushed to a list. Tokens are also created for patients that can pull from the list (either one or two slots). The token is delayed until the scheduled time at which point it moves on to create a patient in the model. If there are more tokens created in one day than slots available, the token will pull a value from the next day.
I gave the slot token some labels to keep track of things. They include the day in the week (1-7: based on the order of the global table), total day since the model was running (starting at 1 and incrementing each day), and the time slot that it will fall in (hours) both by total model time and time of day. Total model time is used to sort the list and to make sure the patient isn't created until the delay is up. Time of day is just used as a reference to see what time in the day that patient is assigned (ex: 9-5, this label has no logic dependent on it, I just thought it was convenient when looking at the values on the list). The push to list activity has a timer in case a slot is never scheduled. That way those time slots are pulled off the list and you can keep track of how many appointments are going unscheduled.
For the source creating the patients, I decided to use a Date Time Source. This allows you to have a different distribution of patients for each day of the week. Right now, the distribution is a uniform distribution with a lower bound of half the slots and an upper bound of the total slots for each day. You can change this to whatever distribution you'd like.
I made some notes in the process flow of things to be aware of that the logic uses to work (in case you make changes). You might want to create a model that uses hours since the seconds can get big fast. I would recommend that, but just be aware that you would need to change anything referencing time to be consistent with the time unit change. Let me know if you have any questions.
test3-em_1.fsm