Appointments+ - Service provider exceptions not working

I am wondering if anyone has a suggestion for a problem that I am having with using exceptions in the appointments plus plugin.

At the moment clients are still able to book an appointment even though the service provider is not working during that time.

I usually have 4 service providers working between 9:00 and 10:30 in 30 minute blocks. However, somedays not all of the providers will be working during this time so I have blocked off their working hours using exceptions. Unfortunately, the exceptions do not seem to be working and up to 4 clients are still able to make appointments during these time periods, even though there are not 4 service providers working during this time period.

(To give you an example usually service providers 1a, 1b, 1c and 1d work between 9:00 and 10:30. According to the plugin NONE of these providers are scheduled to work on the 23rd or 24th of this month between 9:00 and 10:30. However, these time blocks are still showing as being available and it is possible to book up to 4 appointments during this time.)

This is a big problem because, unless I can fix this, it is possible that there will be no one available to take care of the client when they show up.

Thanks in advance for your help.


  • Tyler Postle

    Hey Jen,

    Hope you're doing well and thanks for your question.

    After taking a look at your installation, thanks for granting access :slight_smile:

    This is odd. If you set that as an exception for all providers is it still allowing appointments to be booked? Or is it if even just 1 provider can still be booked then it goes to 4?

    I see you can still book 2a for that day but not that time. Has this always been happening or just started recently?

    Just wanting to get as much information as possible here so I can pass it along to the developer :slight_smile: Thanks for bringing this up Jen.

    Talk to you soon!


  • Jen

    Hello Tyler,

    Thanks for your reply. Basically, I am always able to book up to 4 appointments (this is the number of service providers working at any given time - set up using the Settings/Working Hours tab) in a time slot regardless of how many people have that time slot off. Even if all 4 providers have that time period off it is still showing up as open and up to 4 clients are able to book appointments during that time. If 3 of the 4 service providers have the period off you can still book for all 4 providers.

    With regards to service provider 2a - they can not be booked during that time because they do not work during that time. Each group of 4 service providers work for 1 and a half hours. 1a, 1b, 1c and 1d work from 9:00 too 10:30. 2a, 2b, 2c and 2d work from 11:10 to 12:40. All of this was set up using the working hours tab and works perfectly. It is only when I try to use exceptions that I have problems.

    Thanks again for the help.


  • pxwm

    Hi @Tyler Postle - I hope you don't mind me chiming in

    Hi @Jen

    If I've understood your problem correctly then I've tried on my demo site and it seems to work fine.

    Is it possible you could provide a screenshot of the following:-

    'Working Hours' tab for 'no specific provider' and for each 'service providers'

    'Exceptions' tab for 'no specific provider' and for each 'service providers'


  • Jen

    Dear Tyler and Steve,

    Thanks for the help with this. The following are the requested screen shots:

    Working hours (no specific provider)
    Working hours (provider 1a - i.e. one of 4 possible providers during the 9:00-10:30 time block. 1b, 1c,&1d are set up identically.):
    Working hours (provider 2a - i.e. one of 4 possibly providers during the 11:10-12:40 time block. Again the others are identical.):
    The other time blocks are set up in the same way, that is to say 4 service providers available during 1 time block.

    For no specific provider (i.e. When the writing lab is closed for the whole day):
    For provider 1a:
    For provider 1b:
    For provider 1c:

    Basically, each time block has a different schedule on different days so provider 1a is scheduled to work most days where provider 1d has no scheduled days at present, but I would need to remove exceptions to add ad in at times when there is a particularly heavy work load.

    I hope this helps!


  • Jen

    pxwm - just one quick note to add. All of the service providers are providing exactly the same service so there is no need for the client to select which service provider they need to see so I have removed the short code for selecting the service provider from the appointments page. If I have that drop drop down menu on the page then it will show when that service provider is working (and the correct exceptions) when they are selected from the drop down menu. However, in our context that adds an additional layer of unnecessary complication. The system works ok without the drop down menu in all other respects (for example if there are 4 service providers scheduled to work it will only allow 4 appointments to be made and the time slot will become greyed out after all 4 appointments have been booked) but it does not recognize the exceptions. The appointment plus plugin on the appointments page looks like this:

  • pxwm

    Hi @Jen

    Many thanks for the additional information.

    I would suggest this isn't going to work because removing the Service Provider shortcode will mean that A+ will only use the Working Hours and Exceptions settings for the 'no specific provider' settings.

    However if I've fully understood your requirements then I think I have a solution you may wish to consider but before I detail would it be possible to confirm the following:-

    1) You mention that 'All of the service providers are providing exactly the same service'

    Could you please confirm if you only have 1 x Service created?

    Would it also be possible to provide a screenshot of the following tabs:-

    'Services' tab
    'Service Providers' tab
    'General' tab but only for the 'Time Settings' section


  • Jen

    Hello Steve,
    Thanks for the quick reply. I was afraid that this is what had been happening. I hoped that it would be fixable as the system is still recognizing the number of service providers working at that time and does not let clients make more appointments than there are providers working at that time.

    If you have any other suggestions that would be greatly appreciated. Here are the answers to your questions:

    Yes, we have only 1 service created (LAC Visit)

    I have attached the screen shots you asked for below:

  • pxwm

    Hi @Jen,

    Please Note: I've been updated this as I went along so please keep refreshing to ensure you have the complete post.

    Many thanks for the additional information.

    The good news, based on your feedback, is that I think there is a solution to meet your requirements.
    However the solution does mean you will have to add the 'Service Provider' shortcode but as you only have 1 x Service it does mean you do not need the 'Services' shortcode.

    Please Note: This possible solution will not work if you have more than 1 x 'Service'. If you required more than 1 x Service you would have to create another Appointment page per additional Service. However we can discuss this further if required.

    Could you please try the following

    Login to your Wordpress dashboard as Admin

    Select 'Pages' from the left hand Wordpress menu

    Add you 'Service Provider' shortcode as:-

    [app_service_providers autorefresh="1" service="1"]

    Please Note: 'Service="1" relates to the id of your 'Service' as per your screenshot

    Then 'Update' the page

    This will now show the dropdown to select a 'Service Provider' and once selected will autorefresh the page and automatically select your single 'Service'

    Then select the 'Working Hours' tab
    Then select 'no specific provider' from the dropdown
    Then select 'No' for the 'Work?' field for all days
    Then Save

    Then select the 'Exceptions' tab
    Then select 'no specific provider' from the dropdown
    Then delete the dates in the 'Exceptional NON working days, e.g. holidays: ' field
    Then Save

    Could you then try making an appointment and see if this works and meets your requirements.

    Please Note: Checking your settings in the screenshots I've noticed that you have the 'Time slot calculus method' in the 'General' tab 'Time Settings' section set to ' Service duration based calculus'
    I'm not sure this is going to work for your requirements as your 1 x 'Service' is of 30mins duration and some of your 'Service Providers' available times are not on the hour and half hour.
    If I'm correct you may wish to try changing this setting to:-

    'Minimum time based appointment duration calculus (legacy)'

    This will then show time slots dependant on the 'Time base (minutes)' field and in your screenshot this is 10mins.
    However this does mean that appointments can be made on the hour and 10min intervals.

    I hope this helps

  • Jen

    Hello Steve,

    Thank you so much for taking the time to look into this. I will give your suggestion a shot tomorrow.

    Just a quick note with regards to the last part of your comment. To clarify what the bookings are for and why we have it set up for a 10 minute time base.

    The bookings are for students to book appointments with tutors at the learning centre at our university. The service providers are students who are being payed to tutor other students. Because these students (the service providers) have their own classes to attend their shifts have to start at the beginning of a class period and finish at the end of that class. The blocks of time represent when the university classes start and finish (1st period is from 9:00 to 10:30 2nd period is from 11:10 to 12:40 and so on). The clients are students who are coming to get help with something they are doing in class. The teachers have designed activities for them to do at the Language Centre and each of these activities is supposed to last for about 30 minutes.

    Because of this we need to have each 1 hour and 30 minute block of time start when that period starts, not just on the hour and half hour. Also, each block of time needs exactly 3 bookable time slot that each has to be exactly 30 minutes long. If students can accidentally book a 10 minute slot of time instead of the full 30 minute slot this will end up causing problems. (If we tell them that they need to book for 30 minutes but they are able to book for only 10 minutes I am sure that quite a few of them will forget what they are supposed to do when they are doing the actual booking and accidentally book for only 10 or 20 minutes.)

    Anyway, thank you again for your help. I will give your suggestions a shot tomorrow afternoon and let you know how it works.


  • pxwm

    Hi @Jen

    Many thanks for 'liking' my post and for the points, much appreciated.
    Please let me know how you get on.

    Based on your latest feedback, and just to confirm:-

    I can confirm that if students book the 1 x 'Service' it will block out 30mins.

    However, what I meant to say was that if you amend the settings so the schedule displays in 10min increments then for example:-

    Lesson: 09h00 to 10h30 would mean a student could book an appointment at: 09h00 and this would block out 30mins from 09h00 to 09h30
    However if available they could book 09h10 and this would block out 09h10 to 09h40 etc

    The reason I have suggested changing the settings to 10min increments is because the 2nd lesson starts at 11h10 to 12h40 and if you have the increments based on the 30min Service then it will mean that the 1st available time slot will be 11h30 and 11h10

    However - Really Good News

    I've just tested and it looks as though the A+ rules have changed and it now longer uses the rules I have described above when the 'Time slot calculus method' field is set to 'Service duration based calculus'.

    So suggest you follow my original proposal but keep the 'Time slot calculus method' field set to 'Service duration based calculus' and looks as though this will work as per your requirements.

    I hope that better explains the A+ rules.


  • Jen

    Hello Steve, 1st of all thank you for all of your help, I really appreciate it. Unfortunately the solution you proposed does not really work in our context. The issue is that we potentially have 20 service providers. As the language center gets quite busy during certain times (just before assignments are due) this would mean that some of our students would have to click through 12 to 16 different service provider to see if there is an open space on a certain day (and there may not be any available service providers on that day so then they would have to look at a different day and go through the whole process again.)

    What we need is a way for students to see what time slots are available on a certain day when they click on that day. At the moment we are using the workaround of booking up all of the times when the service providers are not working, this is a pretty inefficient way of solving the problem. We tried booking them through Google Calendar but if there is not at least 1 appointment that has been booked through Appointments plus the system does not recognize that that time slot is full. This makes the process quite time consuming.

    @Tyler - is it possible to open a ticket or make a request with the developers to fix / add this function to the plugin. Basically - if there are no service providers working during a certain time it should not be possible to book any appointments at that time (even is the client chooses the "no preference" option). The system is obviously checking the database to see what service providers are available at that time because it is showing up correctly if the service providers are not available because they have been booked. However, it does not function correctly when the service providers are not available due to the exceptions settings for those individual service providers.


  • Tyler Postle

    Hey Jen,

    Hope you're doing well today!

    I have been testing this out and catching up on the thread here - big thanks to Steve for helping out on this one! Sending some points your way.

    I found the same issue as you, when no service provider selection is there it will allow you to book appointments according to the number of providers but won't take their holidays into account. I'm going to mark this as a bug so it can be fixed up :slight_smile:

    Thanks again for all the troubleshooting done here.

    Once this is resolved, either myself or the developer will post back.

    In the meantime, let us know if you have any further questions.

    All the best,

  • pxwm

    Hi @Tyler Postle - Many thanks for the points, much appreciated

    I would also appreciate if you could review my feedback to Jen based on my understanding of the A+ rules as I would suggest changes to the Admin backend would be required as well if the code is being changed in the front end to resolve the issue

    Hi @Jen

    Many thanks for your feedback and I've been attempting to come up with a solution based on your latest feedback.

    However I would appreciate if you could confirm the following based on my understanding of how the A+ rules manage appointments made when 'no specific provider' is assigned.

    My understanding is:-

    When an appointment is made based on assigning 'no specific provider' then the appointment is confirmed (if set) and assigned to 'our staff' in the backend.

    However I would then suggest Admin would have to log-in and assign the appointment to a 'Service Provider' for that appointment to be fulfilled, so it blocks out the time for that 'Service Provider'.

    Therefore Admin would have to confirm if the 'Service Provider' they wish to assign is available so they will have to check the backend settings, with a risk they incorrectly assign a 'Service Provider' that isn't available or they would have to check in the front end before assigning, and they would have to do the same and check each 'Service Provider' in turn.

    Now back to your current problem - Just out of interest how many 'Service Providers' do you have assigned for each time block?

    e.g. You state you have 4 x 'Service Providers' for time block 09h00 to 10h30
    Do you then have another 4 x 'Service Providers' for time block 11h10 to 12h40 etc

    or as you state sometimes you could have 12 to 16 'Service Providers' assigned to each time block


  • Jen

    Hello Steve,

    You are correct, the appointments are assigned to "our staff" in the backend.

    We have set appointments plus with the google calendar api and the service providers are given access to the google calendar. We have not been assigning the clients to a serve provider as all of the service providers are identical, so long as it is not possible to make more appointments than there are people working then things should be fine. During our tests (we have not gone live yet and are just trying out the system) there were no issues with setting up the system this way - there seems to be no difference with how the system treats an appointment with no service provider attached to it. Even if we did have to assign a service provider this could just be done in order. If one person is working from 9:00 to 10:30 then only service provider 1a would be available, if 2 are working 1a and 1b and so on.

    You are correct about the numbers - we have 4 service providers assigned to each block and there are 5 blocks in 1 day. Sorry about the confusion - the 12 to 16 was an example of how many blocks and service providers a student (client) could potentially have to check. Most students are at school for 4 or 5 periods and may only have 1 class, which means they could probably book an appointment during 3 or 4 different blocks. A student who was booking an appointment would probably start looking for a free time slot in their preferred block of time. However, if it were busy and this block were booked they would then have to check all of the other possible time slots that they could come on that same day. The 12 to 16 was a guess (4 service providers during a slot and the student having free time during 3 or 4 blocks.) In the past we had a signup chart in front of the language centre and close to the assignment deadlines we found that students became very flexible with the times that they were booking.

    As an aside, because it really does not matter which service provider the students book with we were originally going to just set up 4 service providers for the whole day. The reason that we went with different providers for each time block is that it seemed to be the best way to deal with the changes in the number of tutors we need during different times of the semester. During quite times in the semester there are not many service providers needed during the morning and late afternoon classes but a lot of students (clients) still come during the 2nd and 3rd period. We thought that the easiest way to account for this would be to set different service providers for each period and just use exceptions to remove the providers from the days that they were not needed. For example, during busy times we have 4 tutors working all day but during quiet times there is only 1 tutor working during the 1st and 5th period. On these days the other 3 tutors could be removed from these periods quite easily using exceptions.

    Sorry about the long post - I hope that answers your questions and thanks again for taking the time to help out. For the time being the best solution seems to be for us to just book up unavailable time slots. However, it would be great if the plugin could be fixed to allow us to not have to do this.

    @Tyler Postle - Thank you for passing this bug on to the developers.

  • Tyler Postle

    Hey Jen,

    Spoke with one of our developers on this and the behaviour you're experiencing with the exceptions is actually by design. This will likely be changed in a future major update though :slight_smile:

    Currently, as Steve mentioned above, you will need to force a provider selection in order for the exceptions to be taken into account.

    However, since you already mentioned that isn't going to work for you - then pre-booking the time slots looks to be a good solution in the meantime!

    This will likely be changed in a future major release :slight_smile:

    It will require quite a few changes to the code to do, as Steve also alluded too in an earlier post.

    Apologies for the false hope here Jen :slight_frown: Please let me know if you have any other questions/concerns on this. More than happy to help out further!

    Talk to you soon,

  • Tyler Postle

    Hey Jen,

    Hope you're doing well today!

    Exceptions still don't apply to the no service provider selection. We have an Appointments+ re-write planned and this will surely be included in that if not released earlier :slight_smile:

    For now, best option is still pre-booking. Many members find gcal the most convenient way to do that. You can use the gcal integration, which I'm not sure if I already mentioned above - I might have :p

    Let us know if you have further questions.

    All the best,

  • Jen

    Dear Steve and Tyler,

    Thanks to both of you for the quick reply.

    Tyler, do you have any idea when that update might happen? The whole system is going to be transferred over to non-native English speaking staff soon and I'd like to have something slightly easier to administer by that time. I'm just wondering if I need to try a different program, or if we are talking one more semester.



  • Jude

    Hi there Jen

    I'm just wondering if I need to try a different program, or if we are talking one more semester.

    Tyler or myself cannot specify an ETA because of company policy. All I can say is the developer has definitely considered this as part of his roadmap and it can be expected as soon as possible.

    In the meantime if its critical to your operations you can try our Jobs Board where you can find access to some quality talent to help you with this or consider other programs.


Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.