Shared Bookings
Customers and manual bookings in Microsoft Bookings
How the Microsoft Bookings customer list fills up, import, export and bulk delete, booking for a customer, self-service changes and the email code.
Last updated 15 sources
Every shared booking page keeps its own customer list. People are added when they book, when staff book for them, or when you import a CSV, but there's no export button and no bulk delete. Staff book on a customer's behalf from Calendar → New booking. Customers change their own bookings through Manage booking in the confirmation email, and for bookings made on the public page you can't switch that off. A one-time email code can be required on a shared page; on Bookings with me it can't be removed.
The deep answers are linked from each section. This chapter maps how customers, manual bookings and self-service changes fit together, as of October 2026.
The customer list#
Open the page under Shared booking pages and select Customers. A customer record holds contact details only. In Graph (bookingCustomer) that's a display name, an email address, phone numbers and addresses. Answers to custom questions, notes and booking history live on the appointments, not on the customer.
How entries get there#
| Route | Adds a customer? | Notes |
|---|---|---|
| Customer books on the public page | Yes | Microsoft's 2016 launch post says Bookings "automatically creates a contact" in the Customers list. Current Learn articles don't describe the matching rules, such as the same email booking twice under different names |
| Staff use Calendar → New booking | Yes, per the same post | You type the customer's name, email and phone in the booking form |
| Import customers on the Customers page | Yes | Outlook-contacts CSV, no field mapping, no overwrite of existing records |
Graph POST /solutions/bookingBusinesses/{id}/customers | Yes | Required for group services created through Graph: Microsoft says to pass valid customer IDs when Maximum attendees is above 1 |
Import, export and bulk delete#
| Task | In the web app | Workaround | Details |
|---|---|---|---|
| Export the customer list | No button | Build it from the appointment export, or list customers through Graph | Exporting the customer list |
| Import customers | Import customers, Outlook CSV | One Graph POST per row when the file is rejected | Bulk delete or import |
| Delete many customers | One at a time | A Graph DELETE loop, run one call after another | Same answer |
| See every booking for one customer | Not possible | Filter the export or Graph results by email | Exporting the customer list |
Large imports are a long-standing problem. A 2022 Microsoft Q&A thread describes a 4,000-contact CSV in Outlook format that Bookings rejected with "Something went wrong" while a few rows imported fine. It has no answer, and Microsoft publishes no row limit. Split big files and spot-check each batch, or use Graph.
Two side effects to plan for. Users report that deleting a customer doesn't delete their appointments. And Microsoft doesn't say whether correcting a customer record updates their existing appointments, or the other way round, so fix both when an address is wrong (email typos covers the order).
Booking on behalf of a customer#
Calendar → New booking in the Bookings web app is the only place staff create bookings. The Bookings FAQ adds that appointments can only be edited there, not in Outlook. What differs from a booking the customer makes:
| Staff booking (Calendar) | Customer booking (public page) | |
|---|---|---|
| Services offered | All services, including those hidden with Publishing options | Published services only |
| Confirmation to the customer | Sent once a valid email is entered, with a calendar attachment | Sent according to the service's Notifications settings |
| Reminders | The form has Add an email reminder for this booking (Customer, Staff or All attendees), on top of the service defaults | Service defaults only |
| SMS opt-in | The opt-in box appears on the staff form too | Customer ticks it |
| Custom questions | Staff see and fill them in | Customer answers them |
| Email verification code | Not in Microsoft's steps for the staff form | Asked only if the page requires it |
| Manage booking for the customer | Only if the service allows it (see below) | Always |
Campaign tracking (RefID) | None | Taken from the page URL |
If a coordinator books for clients on the public page instead of in the Calendar, every booking hits the email code on pages that require one. A 2026 Q&A thread with four "same question" votes is exactly that. The fix is to add the coordinator as staff on the page and book in the Calendar, where Microsoft's steps include no code.
Letting customers cancel or reschedule#
The service setting Let customers manage their appointment when it was booked by you or your staff on their behalf (Basic details page) covers only bookings staff make. Microsoft says customers who book on the public page keep Manage booking "even when this setting is disabled". Graph gives the default as off. Stopping customers rescheduling explains the workarounds.
- What customers can do: reschedule (date, time and staff member), cancel, or start a new booking.
- Who hears about it: Microsoft says both you and the staff member get an email when a customer reschedules or cancels. The customer gets an updated confirmation.
- The cutoff: Lead time in hours is the minimum notice for booking and for cancelling. It's counted in clock hours, not business hours.
- Reasons: Microsoft doesn't document a cancellation reason for customers. The Power Automate connector has a Cancel Reason field, but Microsoft lists it as not populated for one-to-one bookings.
What we saw when testing (September 2026)#
The manage page opened from a confirmation email needed no sign-in and offered Reschedule and Cancel booking, even on a service with customer management switched off. The page hides Cancel once the appointment is inside the lead time, but that's a check in the browser: called directly, Microsoft's service let us cancel an appointment whose start time had already passed. Treat manage links as keys to the booking. Don't forward confirmations, paste them into tickets, or let the link reach analytics tools.
Email verification#
| Page type | Code required? | Can you change it? |
|---|---|---|
| Shared booking page | Only if the page requires it. Our shared test page, on default settings, never asked, and Graph (beta) gives enforceOneTimePassword a default of false | Yes. Microsoft mentions turning one-time passwords on or off as a business setting that can take up to 10 minutes to apply. A 2026 Q&A answer gives the path Settings → Booking page → Business page access control → Require a one time password to create bookings; Microsoft's own articles don't name the checkbox |
| Bookings with me (Personal Bookings) | Yes, plus a "Sign in / Continue as guest" screen | No. See Bookings with me email verification |
How it works: on the first submit Microsoft emails a 6-digit code and creates nothing. The booking exists only once the code is sent back. So a customer who mistypes their address can't book at all, which is the one built-in protection against typos. Turning the code on trades drop-off (people leave to find the email) for fewer fake and mistyped bookings; stopping spam bookings weighs it against the other options. A page that asks people to sign in is a different setting, covered in why a booking page asks for sign-in.
Customer data and privacy#
- Storage. Customers and appointments live in the booking page's Exchange mailbox, and shared-mailbox compliance policies apply. Copies end up in staff calendars, emails, exports and flows. Where Bookings stores data covers access and erasure requests step by step.
- Collect less. An admin can remove phone, address and notes from every form with Restrict collection of customer data. Per service, make fields optional or hide them; the custom questions chapter lists what each field does.
- Consent. Customer data usage consent on the Booking page adds a required checkbox and records when it was ticked. See consent and privacy text.
- Staff details. The tenant setting Block sharing staff details with customers stops staff contact information going to customers by email.
- Exports are personal data. The TSV export includes names, emails, phones, addresses and every custom answer. Only Administrators can download it, but anyone can be sent the file.
Doing this with BookingsXP#
For bookings made on your website, the BookingsXP booking widget checks the email domain before the booking is sent and suggests a fix for slips like gmial.com, which keeps bad addresses out of the customer list. It doesn't remove Microsoft's email verification; on pages that require the code, the customer still enters it. If you turn on Store bookings, its bookings list has an erase-by-email action for privacy requests (webhooks and data). BookingsXP is independent and not affiliated with or endorsed by Microsoft.
- AnswerHow to export the Microsoft Bookings customer list
- AnswerBulk delete or import customers in Microsoft Bookings
- AnswerWhere Microsoft Bookings stores data (and GDPR requests)
- AnswerStop customers mistyping their email in Microsoft Bookings
- AnswerCan you stop customers rescheduling in Microsoft Bookings?
- AnswerHow do I turn off email verification on Bookings with me?
- AnswerHow to stop spam or bot bookings in Microsoft Bookings
- AnswerWhy does my Microsoft Bookings page make people sign in?
Questions people also ask
Sources
- Microsoft Learn: Create a manual booking (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Customers manage booking (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Define service offerings (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Set scheduling policies (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Bookings faq (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Reporting info (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Granular controls shared bookings (opens in a new tab) · learn.microsoft.com
- Microsoft Learn (opens in a new tab) · learn.microsoft.com
- Microsoft Learn (opens in a new tab) · learn.microsoft.com
- Microsoft Learn (opens in a new tab) · learn.microsoft.com
- Microsoft Learn (opens in a new tab) · learn.microsoft.com
- Microsoft Learn (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: Microsoft bookings not importing contacts (opens in a new tab) · learn.microsoft.com
- Microsoft Learn: I need to disable the email verification code when (opens in a new tab) · learn.microsoft.com
- microsoft.com (opens in a new tab) · microsoft.com
Edit or question? hello@bookingsxp.com