Shared Bookings
How Microsoft Bookings calculates availability
The order Microsoft Bookings applies business hours, staff hours, Outlook free/busy, time off, lead time, buffers and time zones, plus a symptom table.
Last updated 9 sources
A time appears on a shared booking page only if it survives every filter in a fixed chain. The Microsoft server applies the first part (hours, service availability, the staff member's Outlook free/busy, existing bookings and time off) and sends back blocks of free time. The booking page then applies the rest: buffers, lead time, the booking window, time increments and the visitor's time zone. When a time is missing, or shouldn't be there, work out which link in the chain removed it or let it through.
What the Microsoft server works out#
- Business hours. Set on Business information. They default to 8 a.m. to 5 p.m., Monday to Friday, in 15-minute steps. Microsoft calls them "the hours to which all bookings are restricted".
- Staff working hours. With Use business hours on, a staff member's hours are the business hours. Turn it off to give them custom hours, including split shifts. A weekday with no hours means they can't be booked that day.
- Service availability. On the service's Availability options: Bookable when staff are free, Not bookable or Custom hours. Date ranges added with Add a different date range override the general setting for those dates. The Availability section on the Booking page sets page-wide ranges, otherwise "Bookings will default to your business hours".
- The staff member's Outlook free/busy. With Events on Microsoft 365 calendar affect availability on (the default), Busy, Tentative and Out of office time removes slots; Free time doesn't. Graph describes this as checking the staff member's "personal calendar in Microsoft 365", and it requires the person to share free/busy with the organization. Staff from outside your tenant can't share it at all.
- Existing Bookings appointments. A 1:1 slot is gone for that staff member once booked. A group slot stays open until it's full. A Multiple staff service needs every assigned person free; an "Anyone" choice needs at least one.
- Time off and closures. Add time off in the Calendar makes the selected staff unavailable for those dates. For a closure with all staff selected, customers see a closed message on the page.
What the booking page applies on top#
- Duration and buffers. A slot needs room for the Before buffer, the appointment and the After buffer. Microsoft's example: a one-hour service with a 15-minute Before buffer needs 75 free minutes.
- Lead time and the booking window. Times sooner than Lead time in hours or beyond Maximum days in advance are dropped. A service with its own policy uses its own values. See scheduling policy.
- Time increments. Start times are stepped from the start of each free block and spaced at least one increment apart.
- Time zone. Every setting above is in the business time zone. Visitors see the result converted to their own zone, unless Always show time slots in business time zone is ticked under Region and time zone settings.
A calendar day is enabled only if at least one slot is left after all ten steps.
Where Microsoft docs disagree#
- Business hours versus staff hours. The business information article says business hours restrict all bookings, and the add-staff article says custom staff hours "further limit" them. The Graph staff resource says that when Use business hours is off, the staff member's own hours "represent that member's general availability", which reads as a replacement, not a limit. We haven't verified which wins when staff hours fall outside business hours. Keep staff hours inside business hours and the question doesn't arise.
- Staff time zones. The FAQ says "there's no provision to set time zone for staff". The Graph staff resource has a
timeZoneproperty. The web app offers no setting, so treat the FAQ as the working rule. - Two time zone settings, not one. The Bookings calendar inside the web app shows times in the signed-in user's Outlook on the web time zone. The public page uses the Booking page time zone. When those disagree, staff and customers see different times for the same booking.
What we saw when testing (September 2026)#
We captured the public shared booking page and the calls it makes (13 live captures, 913 days, 7,924 slots, viewed from New York, Los Angeles, Chicago, London, Kolkata and Kathmandu) and reproduced every slot from the data behind it.
- The server sends blocks with statuses. Each staff member comes back as a list of blocks marked available, busy, out of office, or (for a partly filled group session) slots available. Working hours, Outlook busy time, existing bookings and service date windows are already folded in. The page doesn't apply business hours itself.
- The answer depends on the range requested. The same hour came back as out of office in one request and available in another, depending on the start date asked for. The page requests about a month at a time, so check a doubtful day near a month boundary from both months.
- Slots start where a block starts. A block that frees up at 6:40 gives 6:40, 7:10 and so on, and a Before buffer shifts that first start. Buffers are from the page code; none of our test services had them.
- The earliest slot is now + lead time + about 3 minutes.
- "Anyone" is the union of staff. Each slot keeps the list of staff who could take it, and the page picks one of them at random when the customer books.
- The page is the safety net. Called directly, the Microsoft service accepted a booking over a busy Outlook block and one in the past. It rejected only clashes with another Bookings appointment for the same staff member.
Symptom table#
| Symptom | Usually caused by | Go to |
|---|---|---|
| "No availability" on every day | Staff assignment, hours, service availability or lead time | No available times |
| Slots shifted by whole hours | Business, Outlook or visitor time zone mismatch | Wrong time zone |
| Starts like 9:50 or 10:29 | Blocks beginning at odd minutes | Odd start times |
| Booked over an Outlook meeting | Calendar sync off, event marked Free, free/busy not shared | Outlook events and availability |
| Booked over a second calendar, Google Calendar or iCloud | Bookings reads one calendar per person | Multiple calendars, Google Calendar |
| Today and tomorrow never bookable | Lead time, or the 1-day fallback | Lead time |
| The calendar opens on an empty month | No jump-to-next-opening feature | Next available time |
| Outlook events longer than the appointment | Buffers are written into the event | Buffer time |
| Holidays still bookable | No time off entry, or an all-day Outlook event marked Free | Holidays and time off |
| Need to open only certain dates | Service date ranges | Specific dates only |
| Too many bookings in one day | No daily cap exists | Limit bookings per day |
| Two customers in one 1:1 slot | Maximum attendees per event above 1 | Group services |
| One person never offered | Sharing, membership or external staff | Staff not bookable, External staff |
| Personal page hours look wrong | Different rules on Bookings with me | Bookings with me work hours |
When changes show up#
The FAQ says availability "is updated when the page is loaded, and when a booking is made", and that only one person can book a contested time. Staff, service and calendar changes usually show on a reload. Business settings such as the one-time password option can take up to 10 minutes, according to the service article.
Bookings with me pages (Microsoft now calls them Personal Bookings) use a different slot algorithm: starts sit on a grid from midnight, and the earliest is more than lead time + 15 minutes away. Developers reading availability through the API should start with available time slots via the API.
BookingsXP is independent and not affiliated with or endorsed by Microsoft.
- AnswerWhy does my Microsoft Bookings page say no available times?
- AnswerMicrosoft Bookings showing wrong time slots or time zone
- AnswerWhy Microsoft Bookings offers odd start times like 9:50
- AnswerStop Microsoft Bookings booking over Outlook events
- AnswerCan Microsoft Bookings check multiple calendars?
- AnswerCan Microsoft Bookings check Google Calendar availability?
- AnswerCan Microsoft Bookings jump to the next available date?
- AnswerMicrosoft Bookings buffer time without longer meetings
- AnswerBlock holidays and staff time off in Microsoft Bookings
- AnswerOffer Microsoft Bookings only on specific dates
- AnswerLimit Microsoft Bookings per day or per customer
- AnswerWhy isn't a new staff member bookable in Microsoft Bookings?
- AnswerCan you add external staff to Microsoft Bookings?
- AnswerIs there an API for Microsoft Bookings available slots?
- AnswerWhy doesn't Bookings with me match my Outlook work hours?
Questions people also ask
Sources
- Microsoft Learn: Staff availability (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Add staff (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Enter business information (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Configure service availability (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Schedule closures time off vacation (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Set language time zones (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Customize booking page (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Bookings faq (opens in a new tab) · learn.microsoft.com
- Microsoft Learn (opens in a new tab) · learn.microsoft.com
Edit or question? hello@bookingsxp.com