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#

RouteAdds a customer?Notes
Customer books on the public pageYesMicrosoft'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 bookingYes, per the same postYou type the customer's name, email and phone in the booking form
Import customers on the Customers pageYesOutlook-contacts CSV, no field mapping, no overwrite of existing records
Graph POST /solutions/bookingBusinesses/{id}/customersYesRequired for group services created through Graph: Microsoft says to pass valid customer IDs when Maximum attendees is above 1

Import, export and bulk delete#

TaskIn the web appWorkaroundDetails
Export the customer listNo buttonBuild it from the appointment export, or list customers through GraphExporting the customer list
Import customersImport customers, Outlook CSVOne Graph POST per row when the file is rejectedBulk delete or import
Delete many customersOne at a timeA Graph DELETE loop, run one call after anotherSame answer
See every booking for one customerNot possibleFilter the export or Graph results by emailExporting 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 offeredAll services, including those hidden with Publishing optionsPublished services only
Confirmation to the customerSent once a valid email is entered, with a calendar attachmentSent according to the service's Notifications settings
RemindersThe form has Add an email reminder for this booking (Customer, Staff or All attendees), on top of the service defaultsService defaults only
SMS opt-inThe opt-in box appears on the staff form tooCustomer ticks it
Custom questionsStaff see and fill them inCustomer answers them
Email verification codeNot in Microsoft's steps for the staff formAsked only if the page requires it
Manage booking for the customerOnly if the service allows it (see below)Always
Campaign tracking (RefID)NoneTaken 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 typeCode required?Can you change it?
Shared booking pageOnly if the page requires it. Our shared test page, on default settings, never asked, and Graph (beta) gives enforceOneTimePassword a default of falseYes. 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" screenNo. 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.

More on this topic

Questions people also ask

Sources

  1. Microsoft Learn: Create a manual booking (opens in a new tab) · learn.microsoft.com
  2. Microsoft Learn: Customers manage booking (opens in a new tab) · learn.microsoft.com
  3. Microsoft Learn: Define service offerings (opens in a new tab) · learn.microsoft.com
  4. Microsoft Learn: Set scheduling policies (opens in a new tab) · learn.microsoft.com
  5. Microsoft Learn: Bookings faq (opens in a new tab) · learn.microsoft.com
  6. Microsoft Learn: Reporting info (opens in a new tab) · learn.microsoft.com
  7. Microsoft Learn: Granular controls shared bookings (opens in a new tab) · learn.microsoft.com
  8. Microsoft Learn (opens in a new tab) · learn.microsoft.com
  9. Microsoft Learn (opens in a new tab) · learn.microsoft.com
  10. Microsoft Learn (opens in a new tab) · learn.microsoft.com
  11. Microsoft Learn (opens in a new tab) · learn.microsoft.com
  12. Microsoft Learn (opens in a new tab) · learn.microsoft.com
  13. Microsoft Learn: Microsoft bookings not importing contacts (opens in a new tab) · learn.microsoft.com
  14. Microsoft Learn: I need to disable the email verification code when (opens in a new tab) · learn.microsoft.com
  15. microsoft.com (opens in a new tab) · microsoft.com

Edit or question? hello@bookingsxp.com