Guide · Scheduling
Microsoft Bookings for clinics and healthcare practices
Last updated 9 min read11 sources
This guide shows how a clinic, therapy practice or other healthcare provider can set up a Microsoft Bookings shared booking page so patients can book the right appointment type with the right clinician, get reminders, and join video visits in Teams. It also covers what Bookings can't do for a practice, and how careful you need to be with the information you ask for. It's for practice managers and the IT person who supports them. Allow two to three hours for the first setup, plus a week of testing with a few friendly patients.
Nothing in this guide is legal or compliance advice. Microsoft Bookings stores patient-supplied information in your Microsoft 365 tenant. Before you collect anything health-related, check your own regulatory obligations and agreements with your compliance adviser.
Prerequisites#
- A Microsoft 365 plan that includes Bookings for the person creating the page (for example Business Basic, Business Standard, Business Premium, E3 or E5). Patients need no licence.
- Clinicians who take video visits need a licence that supports Teams meetings.
- An admin who can check the tenant-level Bookings settings in the Microsoft 365 admin center.
- The booking mailbox created on your practice's own domain, not
onmicrosoft.com. That gives a cleaner booking link, and Microsoft Q&A threads linkonmicrosoft.comsenders to confirmations landing in junk.
Step 1: One service per appointment type#
Each service in Bookings has one duration, one location and one set of questions. Patients can't pick a length or a location themselves. So model every combination a patient should choose between as its own service:
| Service | Duration | Location | Notes |
|---|---|---|---|
| New patient consultation | 45 min | Clinic address | Longer intake questions |
| Follow-up appointment | 20 min | Clinic address | Existing patients only |
| Video follow-up | 20 min | Add online meeting on | Teams link in the confirmation |
| Vaccination clinic | 10 min | Clinic address | Custom hours, Tuesday mornings only |
Create services under Services → Add a service. The editor runs through Basic details → Availability options → Assign staff → Custom fields → Notifications. Microsoft says a page should have no more than 50 services.
- Keep internal notes internal. The Notes field on a service is for staff, not patients. Use it for preparation instructions to the team.
- Hide services patients shouldn't self-book. Turn Publishing options off for services like "Post-operative review". The service disappears from the page but keeps its own link, so you can send it to the right patients or book it from the Calendar yourself.
- Two staff at once. If a procedure needs a clinician and an assistant, use a Multiple staff service. Every assigned person is booked, and all of them must be free.
Step 2: Clinician hours, rooms and closures#
- Business hours (Business information) set the outer limit for all bookings. The default is 8 a.m.–5 p.m., Monday to Friday. Use + to add split shifts around a lunch break.
- Staff hours: on each clinician's staff entry, turn off Use business hours and set their actual clinic sessions, for example Monday and Thursday only. A day with no hours means they can't be booked that day.
- Outlook calendar: leave Events on Microsoft 365 calendar affect availability on (some Microsoft docs call it "Events on Office 365 calendar affect availability"). Meetings, admin blocks and leave in a clinician's Outlook then hide those slots. Only the primary Microsoft 365 calendar counts, and all-day events are shown as Free unless you mark them Busy.
- Session-only services: under a service's availability options, choose Custom hours for things like a Tuesday vaccination clinic. Use Add a different date range for seasonal campaigns.
- Closures and leave: go to Calendar → Add time off, tick All day event and select the staff or everyone. Staff get a notification email for time off entries, and there's no setting to switch it off.
Rooms and equipment. Bookings schedules people, not shared rooms or machines. An accepted 2026 answer on Microsoft Q&A confirms there is no shared-resource blocking across staff. If two clinicians share one treatment room, plan their hours so they don't overlap.
Step 3: Buffers, lead time and slot times#
- Buffer time is set on the service's Basic details (Before and After). Use it for cleaning or notes. Buffers count toward availability: a 30-minute appointment with a 10-minute buffer needs a 40-minute free block. The buffer also appears as part of the event in Outlook. That's by design, and there's no setting to change it.
- Minimum lead time (Booking page → Scheduling policy) stops same-hour bookings you can't prepare for. It also sets how late patients can cancel online.
- Maximum days in advance keeps the diary from filling months ahead before rotas are final.
- Time increments (5 minutes to 4 hours) keep start times on a clean grid. If you still see times like 9:50, a clinician's calendar has a gap at that time. See odd start times.
To let patients pick their clinician, turn on Allow customers to choose a particular staff for booking on the service's Assign staff page. If it's off, or the patient picks "Anyone", Microsoft says staff are assigned randomly.
Step 4: Intake questions, with privacy in mind#
Custom questions are added per service under Custom fields. Tick Required for the ones patients must answer. Microsoft's own example of a custom field is an insurance provider. Questions are saved in a shared list and can be reused across services.
Be careful with what you ask:
- Answers are visible to everyone with access to the page's calendar. Anyone with the Administrator, Scheduler or Viewer role, not just the treating clinician, can see answers on the appointment in the Bookings calendar.
- Answers are exported. The Bookings export includes a Custom Fields column with every answer. Treat downloaded files as patient data.
- Answers are copied by automations. If you build a Power Automate flow, the trigger includes all question answers and sends them wherever the flow does.
- Confirmation emails go to the address the patient typed.
Practical rules:
- Ask only for what you need to route the appointment, such as "New or existing patient?" or "Which site?". Take clinical history in your clinical system or at the visit, not in a free-text booking field.
- Make the default Customer notes field optional or turn it off, so patients aren't invited to describe symptoms.
- Ask your admin to review Restrict collection of customer data under Settings → Org settings → Bookings. It lets the tenant remove standard fields, such as address, from booking forms.
- Turn on Customer data usage consent on the booking page, with your own wording. Microsoft records the date and time the patient ticks it. Add your privacy policy URL under Business information.
- Consider Block sharing staff details with customers if clinicians' contact details shouldn't appear to patients.
Microsoft's statement on storage: "All Bookings data is stored within the Microsoft 365 platform and in Exchange Online," and compliance policies for shared mailboxes also apply to Bookings mailboxes. More detail is in where Bookings stores data.
Step 5: Reminders and SMS#
On each service's Notifications page, add:
- a confirmation, with arrival instructions in Additional information for Email Confirmation
- a reminder the day before, and optionally one two hours before (reminders can be set from 15 minutes to two weeks ahead)
- a follow-up email afterwards, for feedback or rebooking
Reminders are one-way. Patients can't reply to confirm attendance. For more tactics, see reducing no-shows with Bookings reminders.
SMS caveats (as of September 2026):
- SMS needs a Teams Premium licence.
- The patient must opt in, and can reply STOP.
- Your admin must allow SMS in the org settings.
- Microsoft's docs disagree on countries. Some list the US, Canada and UK. The newest Teams Premium licensing page adds Australia and the Netherlands.
- SMS isn't available in GCC, GCC High or DoD.
Check against the SMS answer before promising texts to patients.
Step 6: Video visits in Teams#
Turn on Add online meeting on the video services. Each appointment gets its own Teams link, sent in the confirmation. Microsoft recommends a Teams meeting policy that automatically admits "People in my organization", so the lobby only holds external attendees such as patients. Teams Premium adds a branded waiting room, a scheduled queue view for front-desk staff, and usage reports that include no-shows. The old Virtual Appointments app has been retired, and Microsoft points users to Bookings instead.
What Bookings won't do for a practice#
- No payments or deposits. Take payment at the desk or send a link. See Bookings and payments.
- No recurring appointments. A course of six sessions means six bookings, made by staff from the Calendar. See recurring appointments.
- No approval step. Bookings confirm immediately. Use hidden services for anything that needs triage first.
- No per-patient limit. You can't stop one person from booking several slots.
- No integration with clinical systems. The only event source is a preview Power Automate connector.
Step 7: Put booking on your practice website#
On the shared page, open Booking page and use Embed to get an iframe. Paste it into a page on your site. Two things to check:
- Height on mobile. The iframe has a fixed height, so check it on a phone.
- Search indexing. Disable direct search engine indexing of booking page stops the Microsoft-hosted page from appearing in search results. Turn it on if you want patients to arrive through your website instead.
Test before launch#
- Book each service as a patient, from a private browser window.
- Check that the confirmation, reminder and Teams link arrive, and that the booking appears in the clinician's Outlook.
- Block a slot in a clinician's Outlook and confirm it disappears from the page.
- Cancel from the confirmation email and confirm the slot reopens.
- Look at the appointment as a Viewer to see exactly what patient information staff can see.
Doing this with BookingsXP#
If the fixed-height iframe or measuring website bookings is a problem, BookingsXP embeds your shared booking page as a widget that resizes itself, and reports booking steps to GA4 or Tag Manager. Bookings are still created in Microsoft Bookings. The events it sends to your page don't include patient names or email addresses. It stores no booking details unless you opt in to its data layer. If you do opt in, assess it as you would any other vendor handling patient information. See /features/embed. BookingsXP is independent and not affiliated with or endorsed by Microsoft.
Questions people also ask
Sources
- Microsoft Learn: Define service offerings (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Configure service availability (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Set scheduling policies (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Staff availability (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Add questions (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Add email reminder (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Bookings sms (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Granular controls shared bookings (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Bookings faq (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Bookings overview (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Bookings app admin (opens in a new tab) · learn.microsoft.com