Answer · Customers & data

How to export the Microsoft Bookings customer list

Last updated 4 min read4 sources

The question people ask
“How do I export the customer list (or group attendees) from Microsoft Bookings?”

Asked in Microsoft Learn (opens in a new tab), Microsoft Learn (opens in a new tab) and Microsoft Learn (opens in a new tab)

Short answer

There is no "export customers" button in Microsoft Bookings as of September 2026; Microsoft's own moderators confirm it on Q&A. You have two practical routes: build the list from the appointment export (no code, but limited to the dates you export), or pull the full customer list from the Microsoft Graph API. Group-booking attendees come out of the same two routes.

Option 1: build the list from the appointment export#

The appointment export includes Customer Name, Customer Email, Customer Phone and Customer Address for every booking, so a de-duplicated export is a customer list of everyone who booked in that period.

  1. On the Shared Bookings home page, select Export, choose a date range and download the TSV. Only calendar administrators can do this. Opening the file correctly is covered in exporting Bookings to Excel.
  2. Repeat for earlier four-month ranges if you need a longer history, and paste the files into one sheet.
  3. Select the data and use Data → Remove Duplicates, ticking only Customer Email.

What this misses: customers who were added or imported into the Customers list but never booked, and anyone whose bookings fall outside the ranges you exported.

Option 2: pull the full list from Microsoft Graph#

The Graph bookingCustomer endpoint returns every customer saved on one booking calendar, regardless of dates:

Text
GET https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/{id}/customers

{id} is the booking calendar's email address, the same one that appears in your booking page URL after /book/. The least-privileged permission is Bookings.Read.All (delegated or application). Each record includes displayName, emailAddress, addresses and phones.

If you'd rather not build an app, the Microsoft Graph PowerShell SDK can make the call and write a CSV:

powershell
Connect-MgGraph -Scopes "Bookings.Read.All"
$url = "https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/YourBusiness@contoso.com/customers"
$rows = @()
do {
  $page = Invoke-MgGraphRequest -Method GET -Uri $url
  $rows += $page.value | ForEach-Object {
    [pscustomobject]@{ Name = $_.displayName; Email = $_.emailAddress }
  }
  $url = $page.'@odata.nextLink'
} while ($url)
$rows | Export-Csv -Path customers.csv -NoTypeInformation

Your tenant may require an administrator to consent to the Bookings permission before this runs. The Graph Bookings API only works with shared booking pages, not personal "Bookings with me" pages.

Exporting group-booking attendees#

For classes and other services with more than one attendee, the question is usually "who signed up for this session?"

  • In the TSV export, the Signed Up Attendees Count column shows how many people booked, and Microsoft notes that Booking ID identifies rows that belong to the same group-service booking. Filter on one Booking ID to see that session's attendees; check your own file to confirm how attendees are laid out, since Microsoft doesn't show a sample.
  • In Graph, each appointment has a customers collection with the name, email, phone and custom question answers of every attendee. Use calendarView for a date range and read customers on each appointment:
Text
GET https://graph.microsoft.com/v1.0/solutions/bookingBusinesses/{id}/calendarView?start=2026-10-01T00:00:00Z&end=2026-10-31T23:59:59Z

Group-booking setup itself is covered in group bookings and maximum attendees.

Limitations to plan around#

  • Customer lists are per calendar; there is no tenant-wide list.
  • A Microsoft support answer on Q&A (2022) confirmed that you can't list all appointments for one customer, in the Bookings page or in Graph. You filter the export or the Graph results yourself.
  • The customer record holds contact details only. Custom question answers and tracking data live on appointments.

If you are exporting to clean up the list, bulk deleting and importing customers covers the other half of the job.

Doing this with BookingsXP#

With the optional data layer turned on, BookingsXP keeps a copy of each booking made through its embedded widget, and you can export those bookings as CSV or send them to a CRM with webhooks. That list only includes people who booked through the widget on your site, not customers added by staff, imported, or booked on Microsoft's own page, so it complements the Graph export rather than replacing it. See data layer and webhooks. BookingsXP is independent and not affiliated with or endorsed by Microsoft.

Questions people also ask

Sources

  1. Microsoft Learn: Bookingbusiness list customers (opens in a new tab) · learn.microsoft.com
  2. Microsoft Learn: Bookingbusiness list appointments (opens in a new tab) · learn.microsoft.com
  3. Microsoft Learn: Reporting info (opens in a new tab) · learn.microsoft.com
  4. Microsoft Learn: Bookings faq (opens in a new tab) · learn.microsoft.com