First, make sure that the "Schedule only at these times" option, located just above the service preferences in the volunteer's profile, is turned on. If that option is not turned on, then the scheduler may schedule the volunteer for service times that are not one of the volunteer's preferences.
However, if the "Schedule only at these times" option is turned on, then MSP will NEVER schedule the volunteer for a service time that is not listed as one of their preferences. In cases where it seems like this has happened, there are three common explanations.
- The service preference was removed AFTER the schedule was completed.
- The volunteer was manually assigned to the service. In this case, provided the preferences were set correctly when the manual assignment was made, a warning message would have been displayed saying that the volunteer cannot serve at this time. However, sometimes people click through this message without reading it and end up adding the volunteer to the service anyway.
- The service they were scheduled for was a "yearly service" or "special service". By default any volunteer will be scheduled for any yearly or special service even if their preferences dictate that they can only be scheduled at their listed times and the service is not one of their listed times. The setting that controls this behavior is located in the "Scheduler Settings" dialog, accessed by choosing "Scheduler Settings..." from the Schedule menu at the top of any open schedule or schedule skeleton window. By default the "Schedule any volunteer for any special service" option is turned on. However, by clicking on the "Schedule only volunteers for a special service that have the service (or '[Any special service]') explicitly declared as one of their preferences" option, you can prevent any volunteers who do not have a special service listed as one of their preferences from being scheduled for that special service.