Microsoft Bookings (Preview)

Microsoft Bookings is a scheduling tool and is part of the Microsoft Office family of products. It allows users and organizations to create booking pages and helps their customers book appointments easily.
This connector is available in the following products and regions:
Service | Class | Regions |
---|---|---|
Logic Apps | Standard | All Logic Apps regions except the following: - Azure Government regions - Azure China regions - US Department of Defense (DoD) |
Power Automate | Standard | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
Power Apps | Standard | All Power Apps regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
Contact | |
---|---|
Name | Microsoft 365 Support |
URL | https://support.microsoft.com/en-us/contactus# |
Connector Metadata | |
---|---|
Publisher | Microsoft Corporation |
Website | https://book.ms |
Privacy policy | https://docs.microsoft.com/en-us/microsoft-365/bookings/bookings-faq?view=o365-worldwide#privacy |
Categories | Business Management;Collaboration |
Microsoft Bookings connector is built with the purpose of extending Booking appointments with other functionalities that power platform has to offer. Have you ever looked for custom workflows which you have wanted to build for your customers when they make an appoint with your business, like, Booking a Zoom meeting along with an appointment, Integrating a payment method using Sripe, Uploading customer data to a CRM system, sending out welcome emails? Booking connector is a solution for these asks. With this connector we are exposing all appointment booking actions - like Create/Update/Delete of Bookings.
Prerequisites
Customers trying to use the Bookings Connector should have a Bookings Business License to use this connector with. Microsoft Bookings will be available with these licenses.
How to get credentials
Microsoft Bookings uses AAD authentication. Having a valid O365 account will ensure that you are authenticated to use Bookings connector. You should be a signed in user to create appointment based flows.
Get started with your connector
For creating a custom flow with Bookings apppointments as triggers, you will need to know the Booking busineess' SMTP address. You can build flows with bookings appointment being created/updated/cancelled as triggers. Here are some of the common flows that you can build:
Integration with Stripe
Stripe allows private individuals and businesses to accept payments over the internet. You can track customers, orders, invoices and more; For more information Stripe | Microsoft Power Automate
Integration with Zoom
This Connector will help to automate Zoom Meeting Operations; For more information Zoom Meetings (Independent Publisher) | Microsoft Power Automate
Integration with Dynamic 365
Dynamics 365 Sales Insights helps increase your sales with the help of AI-driven insights that promote personalized engagement and proactive decision making to help build relationships. ; For more information Dynamics 365 Sales Insights | Microsoft Power Automate
Here is all the list of connectors: List of supported connectors | Microsoft Power Automate
Known issues and limitations
Only admins can create flows using Appointment triggers. Description: Right now only Bookings admins can create appointment triggers. If you are a user who is not an admin (Team Member, Scheduler, Viewer, Guest), you should ask your admin to create a flow. Alternatively, you can also request for admin access.
Only 5 flows can be created per Bookings Mailbox. Description: For a Booking Mailbox, only 5 flows can be created. This is a Bookings Mailbox level limit and not a per admin limit. If you are looking for more than one action for an appointment trigger, you can add that in one of the existing flows by using the Add Action button. You can contact other Booking administrators for support.
Errors saying "Flow not part of Bookings Business" while creating a flow. Description: This is a known issue and development team is working to fix this. Issue is due to difference in SMTP addresses of flow creator in flow portal and Bookings business.
Some of the Bookings parameters - Cancel Reason for 1:1 Bookings are not populated. Description: The said paramters do not appear now and the fix for this will be rolled out soon.
Bad Gateway Error - If there are issues in the backend API for creating flows. 502 Bad gateway errors are seen. Please report the same to Microsoft 365 support.
Common errors and remedies
HTTP Error Codes while creating flows:
- '401': Check for Authentication related issues in your connection.
- '403': Only Bookings Administrators can create appointment flows. Check (1) in Known issues and Limitations section.
- '403': Notification URL domain not a part of allowed list.
- '429': More than expected number of appointment flows created for a business. Check (2) in Known issues and Limitations section.
- '500': This is an internal server error. Please report this to your support engineer with all the error details in the flow creation response.
FAQ
How do I get the SMTP address for creating an Appointment trigger based flow? Answer: To create appointment trigger based flows, the creator should get the SMTP address of the Bookings business. This is the same SMTP address that is used to make graph calls. This is also a part of the bookings page URL.
How to get Customer data from the appointment trigger responses? Answer: If this is a 1:1 booking, then the top level fields like CustomerName, CustomerEmail etc can be used. If it is a group bookings, the customers array can be used to get fields like displayName (customers email, customers displayName etc) can be used with a power automate loop component.
Why is the StaffMembers an array? Answer: You will be able to assign more than one staff member as host. If your service has only one staff as host, then the staff details will be seen in the staff member array.
Throttling Limits
Name | Calls | Renewal Period |
---|---|---|
API calls per connection | 100 | 60 seconds |
Triggers
When a appointment is Created |
This trigger is used for listening to create of bookings appointments. Enter the SMTP address of Bookings Calendar that you are looking forward to listen for create appointment events. |
When an appointment is Cancelled |
This trigger is used for listening to cancel of bookings appointments. Enter the SMTP address of Bookings Calendar that you are looking forward to listen for cancel appointment events. |
When an appointment is Updated |
This trigger is used for listening to Updated of bookings appointments. Enter the SMTP address of Bookings Calendar that you are looking forward to listen for Update appointment events. |
When a appointment is Created
This trigger is used for listening to create of bookings appointments. Enter the SMTP address of Bookings Calendar that you are looking forward to listen for create appointment events.
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
Bookings Calendar SMTP Address.
|
SMTPAddress | True | string |
This can be found in your booking page URL: https://book.ms/b/. |
changeType
|
changeType | string |
Returns
- Body
- AppointmentData
When an appointment is Cancelled
This trigger is used for listening to cancel of bookings appointments. Enter the SMTP address of Bookings Calendar that you are looking forward to listen for cancel appointment events.
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
Bookings Calendar SMTP Address.
|
SMTPAddress | True | string |
This can be found in your booking page URL: https://book.ms/b/SMTPAddress. |
changeType
|
changeType | string |
Returns
- Body
- AppointmentData
When an appointment is Updated
This trigger is used for listening to Updated of bookings appointments. Enter the SMTP address of Bookings Calendar that you are looking forward to listen for Update appointment events.
Parameters
Name | Key | Required | Type | Description |
---|---|---|---|---|
Bookings Calendar SMTP Address.
|
SMTPAddress | True | string |
This can be found in your booking page URL: https://book.ms/b/. |
changeType
|
changeType | string |
Returns
- Body
- AppointmentData
Definitions
AppointmentData
Name | Path | Type | Description |
---|---|---|---|
Additional Info
|
AdditionalInfo | string |
Additional Info about the booking. |
Customer Email
|
CustomerEmail | string |
Customer Email address in case of 1:1 bookings. |
CustomerId
|
CustomerId | string |
Customer Id in case of 1:1 bookings. |
City
|
CustomerLocation.PhysicalAddress.City | string |
City the customer belongs to for 1:1 booking. |
CountryOrRegion
|
CustomerLocation.PhysicalAddress.CountryOrRegion | string |
Country Or Region of the customer for 1:1 booking. |
PostalCode
|
CustomerLocation.PhysicalAddress.PostalCode | string |
Postal Code of the customer for 1:1 booking. |
State
|
CustomerLocation.PhysicalAddress.State | string |
State where the customer belongs to in the 1:1 booking. |
Street
|
CustomerLocation.PhysicalAddress.Street | string |
Street where the customer belongs to in the 1:1 booking. |
CustomerName
|
CustomerName | string |
Customer Name for 1:1 booking. |
CustomerNotes
|
CustomerNotes | string |
Customer Notes for 1:1 booking. |
CustomQuestionAnswers
|
CustomQuestionAnswers | array of CustomQuestion |
All the custom questions and answers for 1:1 booking. |
CustomerPhone
|
CustomerPhone | string |
Customer Phone for 1:1 booking. |
CustomerTimeZone
|
CustomerTimeZone | string |
Customer Time Zone for 1:1 booking. |
Customers
|
Customers | array of CustomerData |
List of customers in the 1:N booking |
Duration
|
Duration | integer |
Duration of the meeting |
EndTime
|
EndTime | string |
End Time of the appointment. |
FilledAttendeesCount
|
FilledAttendeesCount | integer |
Number of attendees who have booked this appoinment slot. |
Id
|
Id | string |
Unique identifier for the bookings appointment. |
IsSMSNotificationsEnabled
|
IsSMSNotificationsEnabled | boolean |
Tells if SMS notification is enabled for the appointment. |
JoinWebURL
|
JoinWebURL | string |
URL for joining this online appointment. |
MaxAttendeesCount
|
MaxAttendeesCount | integer |
Max number of attendees allowed in this appoinment. |
SelfServiceAppointmentId
|
SelfServiceAppointmentId | string |
Self service appointment id for the booking appointment. |
ServiceId
|
ServiceId | string |
Unique Service Identifier. |
ServiceName
|
ServiceName | string |
Name of the bookings service. |
ServiceNotes
|
ServiceNotes | string |
Service level notes for the staff and admin. |
StaffMembers
|
StaffMembers | array of StaffMemberData |
List of staff members |
Start Time
|
StartTime | string |
Start Time of the appointment. |
Tracking Data
|
TrackingData | string |
Campaign tracking Data. |
Cancel Reason
|
CancelReason | string |
Reason for cancellation of this booking appointment |
CustomerData
Name | Path | Type | Description |
---|---|---|---|
Email
|
string |
Email of the customer in the 1:N appointment. |
|
Id
|
Id | string |
Unique ID of the customer in the 1:N appointment |
City
|
Location.PhysicalAddress.City | string |
City the customer belongs to for 1:N booking. |
Country Or Region
|
Location.PhysicalAddress.CountryOrRegion | string |
Country Or Region of the customer for 1:N booking. |
Postal Code
|
Location.PhysicalAddress.PostalCode | string |
Postal Code of the customer for 1:N booking. |
State
|
Location.PhysicalAddress.State | string |
State where the customer belongs to in the 1:N booking. |
Street
|
Location.PhysicalAddress.Street | string |
Street where the customer belongs to in the 1:N booking. |
Display Name
|
Name | string |
Display Name of the customer in the 1:N appointment. |
Notes
|
Notes | string |
Notes of the customer in the 1:N appointment. |
Timezone
|
TimeZone | string |
Timezone of the customer in the 1:N appointment. |
Answers
|
Answers | array of CustomQuestion |
All the custom questions and answers. |
StaffMemberData
Name | Path | Type | Description |
---|---|---|---|
DisplayName
|
DisplayName | string |
Display Name of the staff assigned for this appointment. |
EmailAddress
|
EmailAddress | string |
Email Address of the staff assigned to this appointment. |
Id
|
Id | string |
Unique Staff identifier. |
CustomQuestion
Name | Path | Type | Description |
---|---|---|---|
Answer
|
Answer | string |
Answer to this custom question. |
AnswerOptions
|
AnswerOptions | array of string |
All the answer options. |
IsRequired
|
IsRequired | boolean |
Tells if answering this question is mandatory. |
Question
|
Question | string |
Question to be answered. |
QuestionID
|
QuestionID | string |
Unique Identifier of the Question to be answered. |
SelectedOptions
|
SelectedOptions | array of integer |
All the selected answer options. |