When I block my schedule another service provider's schedule block also

HI!

I have foud another bug since https://premium.wpmudev.org/forums/topic/old-appointments-reserved-from-gcal-are-moved-to-removed-appointments-and-dissapear-from-gcal#post-1081819!
I am not sure if it is related to this file or it came with the last update.

I have two service providers, me and another one, I am the admin.
When I block a appointment in my own agenda, it remove the availabilities as well in my other service provider in appointments+.

Its not so bad at the moment because we dont work at the same time, but it will be a real problem soon..

Thanks

  • Adam Czajczyk

    Hello François,

    I hope you're well today and thank you for reporting this!

    Would you mind if I took a look at your setup? I'd like to examine the issue and review your Appointments+ settings in order to try to replicate this on my own test site.

    Could you please grant me a support access to your site using our WPMU DEV Dashboard plugin? To do this please follow this guide

    https://premium.wpmudev.org/manuals/wpmu-dev-dashboard-enabling-staff-login/

    Best regards,
    Adam

  • François Grenier

    Hi,

    Thanks for giving a look at my setup.

    Well, we don't have the same schedule... I don't know why I would fix this.

    The problem is not there. If I put an appointment in my google agenda, outside my normal schedule, in a time spot where my other service provider is available, it remove her availabilities on her appointments+ schedule, and this even if the two agenda are not related.

    For exemple
    Therapist A work from 9 to 5pm
    Therapist B work from 5pm to 9pm
    Therapist A put an appointment from 5pm to 6pm (over his regular schedule)
    Appointments + availability from therapist B from 5 to 6 PM disapears..

  • Adam Czajczyk

    Hello François,

    Thank you for this explanation, the scenario is clear now.

    I reviewed your Appointments+ setup once again and the issue here would be "capacity" setting for services. Let me please explain how it works:

    By default "Capacity" is set to 0 and that means that only as much bookings can be made for the same booking slot as many service providers are assigned to this service. If two service providers offer the same service then the maximum capacity would then be automatically set to "2" so up to two bookings can be made "per slot". The plugin however takes into account working hours, here's an example:

    - two therapists offer the same service
    - therapist A works from 9am to 5pm
    - thereapist B works from 1pm to 9 pm

    with "Capacity" set to "0" (automatic) plugin should let following bookins

    - 9am - 1pm: only one booking per slot
    - 1pm - 5 pm: up to two bookings per slot
    - 5pm - 9pm: only one booking per slot

    However, if Therapists A adds a booking through his/her calendar at 5pm that's fine and shouldn't affect Therapists B.

    On your setup though the "Capacity" is set to "1" meaning that there's a "hard limit". As a result plugin "disables" the only available booking slot there and this is the booking slot for Therapist B.

    The "Capacity" setting puts a fixed, "hard" limit on number of available bookings at the time.

    Therefore, I think you may want to review these settings and if in fact therapists' working hours do not overlap, changing capacity of those services to "0" should solve the issue here. Plugin will set that automatically and the "overbooking" described in your initial post shouldn't happen anymore. I tested this on my own setup and it seems to be working fine that way.

    I hope that helps!
    Best regards,
    Adam

  • François Grenier

    Hi,

    I'm sorry to post in an old tread but I think the capacity don't work on my setup.

    The capacity setting is at 0 for all of our sevices.

    I block all my schedule by adding full day long appointment in my google calendar.

    All availabilities of my college are removed, but they should be kept open.

    Many thanks, support access is granted :slight_smile:

    Here is the app. page: kinesante.ca/rv

  • Adam Czajczyk

    Hello François!

    I checked the site again. I can see that there are now total of four services and two service providers. Two of these services are supported by both service providers so there should be two slots available for those services at the time. Two other services are offered by a single service provider so only a single slot would be available for those.

    However, capacity is one aspect and the number of service providers in this case matters as well. A single service provider can offer many services but a single service provider means also a single booking slot. If there are for example four services provided by a single service provider then for each of these services there'll be single booking slot available at the time. But when one of these slots is booked (for any one of those four services) all other services for that date/time for this provider will be made unavailable as well.

    I suppose an option here would be to create additional "Dummy" service providers but I'd better make sure that we're on the same side here. Taking your current services and service providers as an example, could you please describe for me an example (or a few examples better yet) booking case scenario?

    I'll then try to achieve it on my own test setup and provide you with detailed setup description.

    Best regards,
    Adam

  • François Grenier

    Hi Adam,

    Thanks for the explanation. I see that the solution is a little bit complicated. I am in the process of hiring 7 new services providers in the next two month, who will have mix scedules, mix services. I might have a service provider offering 3 different services, at the same time of another service provider who offer only one service that the first one allready offers. Worst is that some services have different lenght of times...

    For now, as you said, I have two services provider that don't have the same schedule. Quite easy.
    But next week something change :
    Serice provider B will work at the same working spot as service provider A (me).
    Service provider B offer 4 services, service provider A offers 2 services. The two services offered by service provider A are also offered by service provider B.

    When I have too many clients in my schedule (or if I have a day off), I block the remaining available spots by adding an false appointment for the rest of the day in my schedule (an 8 hour appointment). That shoudn't remove availabilities of service provider B. Same for service provider B, she should be able to block some availabilities in her schedule without blocking my availabilities.

    There is also a lot of reebooking in our situation. We finish providing the service to the client, and we add a new appointment the next week directly in gcal with the name of the client. This is the feature we love the most because it is very easy and very fast. I just have to move (or copy) the appointment to the next week, the availability dissapear from the appointment page in the website. I don't really want to have to go online, book the appointment in the plugin, send a comfirmation email... too complicated. So when I rebook I need to do it in gcal without removing the available spot of the other therapist.

    Sometime a new client will take a new apointment by phone, and I don't always take the time of doing it on the website, usually I just add in my gcal for the next week.

    In august, our setup will look like this :

    Therapist A : Service 1, service 2
    Therapist B : Service 1, serivce 2, service 3, service 4
    Therapist C: Service 5
    Therapist D: Service 5
    Therapist E: Service 6, service 2
    Therapist F: Service 6
    Therapist G: Service 7 and service 1.

    Theses are not accurate, but it will look a lot like this.

    I'm gonna have all thoses gcals shared with a central calendar so I will be able to see all appointments in gcal at once, book an appointment to any of the therapist with gcal or with appointments+ plugin. All thoses therapist will have access to their own calendar and be able to rebook their own appointments, block a lunch break or a day off by themselves. I am sure I will need a secretary very soon, but the flexiblitity of working like this with this plugin enable me to postpone this move.

    Here it is, I hope my explanation are clear enough, and I hope that how I work is not too complicated :slight_smile:

    Many thanks

  • Adam Czajczyk

    Hello François!

    The setup is indeed a bit complex but Appointments+ should handle it out of the box. There are some aspects to take care of though. First, take into account what I explained previously about capacity and relation between providers and services. That's the base.

    The GCalc "blocking" issue could be solved a bit different way. Since your service providers are going to be able to manage their schedules etc, I'd suggest that they have their own Google Calendars integrations (which you're going to implement anyway, if I understood that correctly). You will then also want to create additional service: you mentioned that there'll be the same service but of different length available and this means that for Appointments+ these would be two separate services. However, since a single service provider can handle a single appointment at the time (I think) even if he/she is assigned more services, you will want to use "Shared Resources" add-on to "share service provider" between two or more selected services.

    Then, for blocking slots/days, you will want to use your own Google Calendar and not the general one and this way only slots for this particular service provider should be blocked. Furthermore, if you as an admin/manager would like to block a day of a service provider other than yourself, also use his/her Google Calendar. To be able to do this you may simply require your service providers to share their GCalc with you (using your e-mail address).

    I hope that makes sense :slight_smile:
    Best regards,
    Adam

  • François Grenier

    Hi,

    Thanks for your answer. I need to ask you some question about it.

    I'd suggest that they have their own Google Calendars integrations

    Why can't I just create a new calendar in gcal and share it to the service provider? It would be easyer and I wont have to work in their google account?

    you mentioned that there'll be the same service but of different length available and this means that for Appointments+ these would be two separate services.

    Is there an additionnal time setting somewhere for a specific therapist (like padding or time duration addons?)

    However, since a single service provider can handle a single appointment at the time (I think)

    This is correct.

    even if he/she is assigned more services, you will want to use "Shared Resources" add-on to "share service provider" between two or more selected services.

    I don't understand why. In my actual setup it seems to work fine without this addon? Do you mean that I have to share a service between two therapist? For example, without this addon, Therapist A and B can't do the same service at the same time because App+ Think we can only provide one service at any given moment (like an hotel room for exemple)
    If I use this feature, and I block my schedule for example. Will app+ will interpret that I have blocked only one of my service and the other one is still available?

    Then, for blocking slots/days, you will want to use your own Google Calendar and not the general one and this way only slots for this particular service provider should be blocked. Furthermore, if you as an admin/manager would like to block a day of a service provider other than yourself, also use his/her Google Calendar. To be able to do this you may simply require your service providers to share their GCalc with you (using your e-mail address).

    Yes this is how I am working at the moment. Except that I share all calendars to the services providers from a central google account than the other way around (like in my first question)

    All in all I think we are getting closer to the solution.

  • Adam Czajczyk

    Hello François!

    Why can't I just create a new calendar in gcal and share it to the service provider? It would be easyer and I wont have to work in their google account?

    You can actually, that would work as well. The point is to make sure that there are separate Google Calendars created for each service provider and there's individual integration setup for them along the "general/main" integration.

    Is there an additionnal time setting somewhere for a specific therapist (like padding or time duration addons?)

    You setup "working hours" for each therapist and these are independent of each other but there's no additional "time setting" so if a single therapist is about to provide services of different length you need to create multiple services and assign them to this therapist. In other words: for a service provider (therapist) there can only be "working hours" set (hours that therapist "is available") and for a service there can only be a single length set.

    I don't understand why. In my actual setup it seems to work fine without this addon? Do you mean that I have to share a service between two therapist? For example, without this addon, Therapist A and B can't do the same service at the same time because App+ Think we can only provide one service at any given moment (like an hotel room for exemple)
    If I use this feature, and I block my schedule for example. Will app+ will interpret that I have blocked only one of my service and the other one is still available?

    I must admit that now after I re-read you question I think I brought some unnecessary confusion here. The "Shared Resources" add-on may not be necessary here indeed. The capacity of a service will never be higher than the number of service providers offering but by default it equals the number of service providers assigned. So, if Therapist A nad Therapist B both offer Service C then there are two common scenarios:

    - if "working hours" of both these therapists overlap, during this "overlap" there'll be two booking slots available for Service C so two different customers will be able to book
    - if "working hours" do not overlap then the Service C will only provide a single booking slot available and only service provider will be different depending on selected booking slot

    If any of these therapists offer more than one service than Appointments+ will never let anybody book more appointments (regardless of selected services) than the number of "currently" available therapists. This should work then with you current setup I think.

    Yes this is how I am working at the moment. Except that I share all calendars to the services providers from a central google account than the other way around (like in my first question)

    Yes, that's fine. As I wrote at the beginning of this post it's not important who the "real" owner of the Google Calendar is as long as these are "individual" calendars. Whether the calendar is shared (on "Google level") or not an with whom it doesn't matter here.

    Best regards,
    Adam

  • François Grenier

    Hey Adam,

    I just found out how the problem appears.
    Here is what I done :
    Therapist A work from 7am to 5 pm.
    Therapist B work from 5pm to 10pm.
    Therapist A put an empty appointment in his schedule from 7am to 10pm (because it is easyer to block a full day).

    The availabilities of therapist B disappear from app+ appointment page.

    If Therapist A block only his normal working hours, without overlaping with therapist B, it work just fine :slight_smile: I don't need to change anything in my setup.

    But

    What if therapist A decide to take an extra appointment outside his normal working hour, in the working hours of therapist B. This particular hour will dissapear from his availabilities online... I think this is where I need help. Maybe with the shared ressources addon?

    Many thanks, my understanding of the plugin gets better and better!

  • Adam Czajczyk

    Hello François!

    Therapist A put an empty appointment in his schedule from 7am to 10pm (because it is easyer to block a full day).

    The availabilities of therapist B disappear from app+ appointment page.

    That'd be correct. Therapist A ends his working day (according to Appointments+ "working hours" schedule) on 5pm so after 5pm there's still only a single booking slot available. Now, when Therapist A "overlapped" with Therapist's B hours he/she did block that single slot.

    That's because Appointments+ got a message from Google Calendar that there's an appointment going on between 5pm and 10pm and then checked that only the single slot is available so it blocked it. That's default workflow and changing it could cause significant "overbooking" issues, possibly.

    What if therapist A decide to take an extra appointment outside his normal working hour, in the working hours of therapist B. This particular hour will dissapear from his availabilities online... I think this is where I need help. Maybe with the shared ressources addon?

    The "Shared Resources" add-on will not help here. The idea of it is quite opposite: limit the number of bookins. An example:

    - there are four service providers
    - there are two services available
    - each of service providers can provide each service.
    - there are in total four booking slots available at the time (assuming all provides work the same schedule)
    - let's say it's a hair saloon: there are only two physical places/stations available at the same time at the venue

    This is the case when you will want to use "Shared Resources" ad-on, setting both services to share resources with each other. As a result client can select any of the services available and any of the service provider but only two clients can book at the time.

    As for your question. I think this won't be possible without any major redesigns of the plugin and it would require some custom coding.

    Best regards,
    Adam

  • François Grenier

    Hi,

    Thanks for thoses explanation.

    I think I understand why this is complicated. I'll work it out the other way around.

    I'll make some gcals for each treatments rooms and then export the data after the appointments are completed into the gcals for each services providers... this way I'll know when the rooms will be unavailable and who works at what time...

    I'll make a website for the bookings of the rooms link with the gcals so my therapist will be able to reserve a working hour into one of my available rooms...

    Many thanks for your explanations and your help

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.