Integrations & API

Microsoft Bookings connector for Power Automate

Every trigger and action in the Microsoft Bookings (Preview) connector, its licence class, the 5-flow and admin-only limits, known issues and common flows.

Last updated 9 sources

The Microsoft Bookings connector is the only event source Microsoft offers for Bookings. It has three triggers (appointment created, updated, cancelled) and a single action that lists the booking pages you administer, so it can react to appointments but can't create, change or cancel them. As of October 2026 it's still labelled Preview, it's a Standard connector, only an Administrator on the booking page can build flows with it, and each booking mailbox allows five flows in total.

At a glance#

ItemDetail (as of October 2026)
Name in the designerMicrosoft Bookings (Preview), published by Microsoft Corporation
ClassStandard in Power Automate, Power Apps, Logic Apps and Copilot Studio
Not available inGCC, GCC High, DoD and 21Vianet (Power Automate, Power Apps, Copilot Studio); Azure Government, Azure China and DoD (Logic Apps)
PrerequisiteA licence that includes Bookings, and a Microsoft Entra ID sign-in
Who can build appointment flowsAdministrator role on that booking page. Team Member, Scheduler, Viewer and Guest can't, and tenant admin rights don't count
Flow cap5 per booking mailbox, shared by every admin. The sixth returns HTTP 429
Throttling100 API calls per connection per 60 seconds
ConnectionNot shareable. Each user who opens a shared app creates their own
Booking pages coveredShared booking pages only

Triggers#

Trigger (exact name)Operation IDFires whenGotchas
When a appointment is CreatedCreateAppointmentThe first customer books a slot, on the page or when staff add it in the calendarSpelled that way in the connector. In a group service only the first attendee fires this
When an appointment is UpdatedUpdateAppointmentAn appointment changes, including a second or later attendee joining a group slotThe payload doesn't say what changed. Users report it not firing at all for some edits
When an appointment is CancelledCancelAppointmentAn appointment is cancelledCancelReason isn't populated for one-to-one bookings

Each trigger takes two required parameters: Booking page (SMTPAddress), which you pick from a list or type, and change_type, an array described only as "Changes to listen on". Microsoft doesn't document its values; the designer fills it in. The booking page list only shows pages you administer and have opened recently. If yours is missing, open it once in the Bookings web app or choose Enter custom value and paste the address shown under the page's Integrations area for Power Automate. One user on Microsoft Q&A saw that address with %40 in place of @; it's still the booking mailbox address, not your own.

The action#

List Booking Businesses where user is an admin (ListBookingsBusinessUserAsAdmin) returns a mailboxes array, each with displayName and email (the booking mailbox SMTP address). It's useful for picking a page dynamically, and nothing else. The connector page's introduction says it exposes "all appointment booking actions - like Create/Update/Delete of Bookings". The action list on the same page shows that isn't true.

What the triggers return#

All three triggers return the same AppointmentData object. Which fields are filled depends on whether it's a one-to-one or a group service.

FieldsFilled forNote
CustomerName, CustomerEmail, CustomerPhone, CustomerNotes, CustomerTimeZone, CustomerId, CustomerLocation.*One-to-one bookingsOne of the two Microsoft pages says "Custom Notes" aren't populated for one-to-one bookings (see below); it doesn't say which field it means
Customers[] with Name, Email, Notes, TimeZone, Location.*, Answers[]Group bookingsLoop over it with Apply to each
CustomQuestionAnswers[] with Question, QuestionID, Answer, AnswerOptions, SelectedOptions, IsRequiredOne-to-one bookingsGroup attendees' answers are in Customers[].Answers
SelfServiceAppointmentIdEvery appointmentThe ID to key on. Microsoft says it's set for online, in-person, staff-booked and customer-booked appointments
IdEvery appointmentDeprecated. An Exchange ID that isn't unique across triggers
ServiceId, ServiceName, ServiceNotes, StartTime, EndTime, DurationEvery appointment
StaffMembers[] with DisplayName, EmailAddress, IdEvery appointmentAn array because a service can have several hosts
JoinWebURLOnline servicesThe Teams link
TrackingDataWhen the booking link had ?RefID=The only attribution value Bookings records
FilledAttendeesCount, MaxAttendeesCount, IsSMSNotificationsEnabled, AdditionalInfo, CancelReasonEvery appointmentCancelReason empty for one-to-one bookings

The field-by-field use of this payload in a real flow (normalising one-to-one and group bookings, picking one custom answer) is worked through in the Power Automate CRM guide.

Known issues and where the Microsoft pages disagree#

Microsoft documents the connector in two places: the connector reference and a Bookings article on Power Automate integration. They overlap but don't match.

IssueConnector referenceBookings article
Fields not populatedCancel Reason for one-to-one bookingsCancel Reason and "Custom Notes" for one-to-one bookings, without naming the field
Server error on flow creationListed as 502 Bad GatewayListed as 500 internal server error
Errors hidden in the portalNot mentioned"The errors that might occur during creation of a flow don't appear in the flow portal"
Example flowsStripe payments, Zoom meetings, Dynamics 365 Sales InsightsDynamics 365 Sales Insights only (the Zoom example survives only in the introduction)

Both pages say fixes are coming "soon" or "in the next release". As of October 2026 neither page records that any shipped.

The documented error codes when saving a flow:

CodeMeaning
401Problem with the connection's authentication; re-create it
403You aren't an Administrator on that booking page
403 "Notification URL domain not a part of allowed list"Listed without a fix; contact Microsoft 365 support
429The booking mailbox already has five flows
500 / 502Backend error; report it to support with the error details

Problems users report that Microsoft doesn't document: the Updated trigger showing no runs while Created and Cancelled work (two Microsoft Q&A threads, 2024 and 2025, with a March 2026 comment still asking for a fix), flows that only started triggering after SMTP was enabled on the booking mailbox, and invalid_grant errors in tenants with Conditional Access. Each is worked through in why a Bookings trigger isn't firing.

Licensing#

Because the Bookings connector is Standard, the Power Automate rights that come with Microsoft 365 are enough to use it; Microsoft describes even the free tier as covering "standard connectors only". The licence question comes from what else the flow connects to. On Microsoft Learn, as of October 2026:

Connector you addClass in Power Automate
Office 365 Outlook, Microsoft Teams, SharePoint, Excel Online (Business)Standard
Microsoft DataversePremium
SalesforcePremium
HubSpot CRM (Independent Publisher)Premium, community-maintained
Zoom Meetings (Independent Publisher)Premium, community-maintained

The HTTP action, which you need to forward a booking to Zapier, your own API or the Graph API, depends on your plan; check Settings > View my licenses before you design around it.

Common flows#

GoalTriggerMain actionsLicenceWhere it's covered
New booking to a CRMCreated, plus Updated and CancelledFind or create the contact, log the meeting keyed on SelfServiceAppointmentIdPremium (CRM connector)CRM guide
Alert in a Teams channelCreatedPost message in a chat or channelStandardTeams channel alerts
Alert in SlackCreatedSlack Post message (V2)Check the Slack connector in your planSlack notifications
Hand the booking to Zapier or MakeCreatedHTTP POST to a catch hookDepends on HTTPZapier options
Log bookings to Excel or SharePointCreated, CancelledAdd a row or list itemStandardReporting in Excel
Server-side GA4 eventCreatedHTTP to the GA4 Measurement ProtocolDepends on HTTPGA4 tracking
Send a payment linkCreatedCreate a link in Stripe or your billing tool, email itDepends on connectorPayments
Create a Zoom meetingCreatedZoom Create Meeting, email the join linkPremiumBookings and Zoom

Working within the flow cap#

The cap is per booking mailbox, not per person, and old test flows count. A layout that leaves room: one flow per trigger (three), one spare for alerts and one for testing. When you need a second outcome from the same event, add actions to the existing flow instead of creating another. Because the connection can't be shared, the flow stops if its owner leaves or loses the Administrator role, so build it under an account your organization will keep.

When the connector can't do the job (government clouds, writing appointments, or reconciling missed updates), the Microsoft Graph Bookings API is the fallback, and Bookings webhooks and alternatives compares the options.

Doing this with BookingsXP#

For bookings made through the BookingsXP widget on your site, BookingsXP can send each one as a signed booking.created webhook, including the UTM source and click ID the connector can't see. That path needs no Bookings Administrator role and doesn't use any of the five flows, but it only covers widget bookings, not ones staff add in the calendar or ones made on the booking page Microsoft hosts. See webhooks. BookingsXP is independent and not affiliated with or endorsed by Microsoft.

More on this topic

Questions people also ask

Sources

  1. Microsoft Learn (opens in a new tab) · learn.microsoft.com
  2. Microsoft Learn: Power automate integration (opens in a new tab) · learn.microsoft.com
  3. Microsoft Learn: Power automate licensing (opens in a new tab) · learn.microsoft.com
  4. Microsoft Learn (opens in a new tab) · learn.microsoft.com
  5. Microsoft Learn (opens in a new tab) · learn.microsoft.com
  6. Microsoft Learn (opens in a new tab) · learn.microsoft.com
  7. Microsoft Learn (opens in a new tab) · learn.microsoft.com
  8. Microsoft Learn: Bookings when an appointment is updated (preview) (opens in a new tab) · learn.microsoft.com
  9. Microsoft Learn: Using bookings with power automate (opens in a new tab) · learn.microsoft.com

Edit or question? hello@bookingsxp.com