"Office 365"
6 TopicsBook Appointment - MS Bookings Graph API
Hi, I can create appointments using the MS Bookings API, for particular staff/customers and services in my configured booking business. However I've noticed that the API call does not stop double bookings of staff from being created (same start/end, same staff/service etc). The MS Bookings user interface does seem to detect duplicate bookings (informing the user that they are too late as the staff member is now busy), whether the appointment is occurring at exactly the same points in time, or starts mid-way through an appointment. (I have tested this via multiple browser tabs at the booking page, booking the same appointment in each.) Inspecting the response in the web browser for the bookings UI shows an API response payload with "error": "Status(StatusCode="FailedPrecondition", Detail="Staff not available" Looking at https://learn.microsoft.com/en-us/graph/api/bookingbusiness-post-appointments?view=graph-rest-1.0&tabs=httpfor the documentation of the API I've noticed that there is very little in regards non-success responses / error codes / oDataError documentation. In fact nothing at all. The only way around this I can see is that on booking an appointment you have to first check availability, but even that seems to be subject to a potential race condition - given that often the API call takes a few seconds to create the appointment and respond with the details. Does anybody know of a better work-around please, or is there some documentation I am missing, seems like a really important part is missing in the book appointment API -namely it should not proceed and should return an appropriate error message/response if the staff member is not available? Or perhaps, this is by design and the app programmer does need to re-check availability ;0 Thanks in advance for any help 🙂912Views0likes1CommentHow to have multiple services using only one mailbox and one booking site.
I've seen people on here have had the displeasure of running into the same problem I had: To manage multiple services through one booking site while still being able to allow conflicting appointments and have all appointments gathered in a single Outlook calendar rather than the Bookings calendar in Teams. The problem If you connect more than one service in Bookings to a single staff member the slot gets occupied in the schedule and therefore unavailable. If service #1 is booked at 9pm on the 25th of April, that time slot is marked as occupied and blocked from further interaction. If another person visits the site a few minutes later and tries to book service #2 at the same date and at the same time, it's simply not possible as the slot is shown as unavailable as it's occupied. A rather easy fix would be to assign each service it's own Booking site but the maintenance would be awful. User request The user wanted a number of employees to handle the booking site of multiple services but not by associating service#1 to Employee#1, Service#2 to Employee#2 and so on but by having all the employees receiving updates from all the services and for them to be able to get a complete overview of the appointments in Outlook rather than in Teams. TL;DR: All services managed from one calendar in Outlook. Research - trial and error I initially came up with the idea to use a single distribution list to get all the employees to receive appointments but I came to the brutal realization of this not solving the trouble of the time slot being occupied by another service once one service was booked. So had to set up 6 different distribution lists simply to act as “staff members”, one for each station. Service1 mail, service2 mail etc and then I connected them to its equivalent on the website (service1 mail handling service #1 on the website) This was how I got around having to set up multiple booking sites and could handle all the service bookings on one site, making the administration a bit more manageable. Persistent issue Setting up 6 different distribution lists did solve the occupancy issue in the calendars but it did not solve the issue of trying to show 7 different calendars in Outlook while trying to maintain a decent layout. (6 services calendars plus the user’s personal calendar) = chaos. The ACTUAL fix! I continued brainstorming and while doing so I fired up Powershell and tried making use of ExchangeOnline commands. I went through every single argument out there but was left disappointed and pretty much about to give up but then something just clicked. I got the idea to use a shared mailbox as the sole member and owner of every single distribution list I had created. This would theoretically mean that the shared mailbox would receive every single appointment from Microsoft Bookings as well as gathering all the appointments in one single calendar. And then just hand the employees full access to the shared mailbox. I was however met with stern resistance immediately as I was only allowed to set a UserMailbox as the owner of a distribution list in EAC. So I had to turn back to PowerShell. The argument “ManagedBy” is the PowerShell-equivalent of owner in EAC. To change the owner of a distribution list you must install the ExchangeOnline-module in Powershell, then login with your admin credentials. Command to change owner: Set-DistributionGroup -Identity “service1@yourcompany . com” -ManagedBy "SharedMailbox @ yourcompany . com" Command to add the shared mailbox as member: Add-DistributionGroupMember -identity "service1@yourcompany . com" -Member "SharedMailbox @ yourcompany . com" So I did this for all the distribution lists I had created. Next I had to go back to EAC to remove every existing member of the distribution lists apart from the shared mailbox which meant it was now the only member and owner. Therefore all appointments made at the booking site are now forwarded to the inbox of the shared mailbox. You can’t set just set any type of mailbox as the owner of a distribution list though, it has got to be UserMailbox, Legacy, Team, RemoteUser,Room etc. Which type of mailbox you end up picking is mostly down to personal preference but I chose to go with a shared mailbox as I was somewhat familiar with it’s user-scope. Just to rule out any possible conflict issue I allowed conflicting meetings for the shared mailbox which means that two appointments at the same date and time would stack on top each other instead of cancelling each other out. Command to Allow conflicts: Set-CalendarProcessing -identity "SharedMailbox @ yourcompany . com" -AllowConflicts $true Done! All appointments will now be sent to a shared mailbox and they will all be gathered in one single calendar 😊1.2KViews0likes3CommentsMS (Double) Booking
This may sound counterintuitive, but I am looking for a way to set up a Bookings Page where double bookings are possible. Setting the max number of attendees to more than one sort of works, but this does not create separate meeting links for each attendee. I used to go into the booking calendar via exchange and manually set the "Show as" status for meetings to "Free". This used to work really well and would allow the specific slot to be booked again. However, it doesn't seem to be working any longer. Does anyone have any ideas or creative workaround to achieve this?791Views0likes2CommentsMicrosoft Shared Bookings ignoring the bookings made by staff members
Hello, I have tried using microsoft shared bookings and noticed the bookings created by staff members are not in sync with the bookings link. For example If one of my staff members created a booking for 25th June 2024 10:00 AM. This time slot is still showing for our customers to book. It is supposed to block this particular time slot to avoid double booking. Can someone please help261Views0likes0CommentsBookings not respecting lead time
For the last few days, Bookings has not been respecting the "minimum lead time" on appointments - I have a 16-hour lead time set up, but at the moment, I can book myself within an hour of the current time. The "maximum lead time" seems to be respected, as I can't view availability further out than that. I've tried changing the lead time and re-saving it and creating a new appointment type to see if the settings would work there: neither worked, and still showed availability within the window I'd asked to be forbidden. It does seem to be respecting my calendar bookings and all other availability settings except the minimum lead time. Any suggestions on how to fix this? It's getting a bit disruptive when people are booking appointments with very little notice.1.8KViews4likes5CommentsCalendar events affect availability greyed out
we created a shared calendar for a team as the bookings topic does not need a specific individuals but they have different schedules that change constantly. For example, in one case, different people from the HR department have an irregular rotation (each one "covers" a shift every third Monday). Rather than adding the three individually and manually changing their bookable times/schedules constantly, we created a shared mailbox and added that as Staff. The email used to add this shared calendar does not have any MS licence as it is just an alias for the calendar. the "Calendar events affect availability" option was checked back then when it was created, but now it is unchecked and greyed out. we belive it has to be with licencing (of the shared calendar alias) as other peoples email with licence from within the organization work fine but people without the licence does not work. Even though the answer seems obvious from last sentence, it is unlikely to be this way as every other option, aspect or feature works the same.3.5KViews0likes2Comments