Microsoft Bookings Integration Guide
Microsoft Bookings Integration Guide
Overview
The Microsoft Bookings integration lets your AI bot answer customer questions about available services, staff, and appointment times — and even create and look up bookings — directly from your Microsoft Bookings calendar.
Requires: Microsoft 365 connected (go to Integrations → Microsoft 365 first), plus BookingsAppointment.ReadWrite.All and Bookings.Read.All Graph API permissions granted in your tenant.
Setup
1. Go to Integrations → Microsoft 365 and connect your M365 tenant if not already done.
2. Go to Integrations → Microsoft Bookings.
3. Find your Bookings Business ID: open the Microsoft Bookings web app, go to your booking page, and copy the GUID from the URL.
4. Paste the Business ID and click Save.
Service Discovery Tools
Get Business Info
Returns the Bookings business name, phone number, email, address, and website URL.
Triggers: "What's your phone number?", "Where are you located?", "How do I contact you?"
Get Available Services
Lists all bookable services with their name, description, duration in minutes, and price.
Triggers: "What services do you offer?", "How long is a haircut?", "What does a consultation cost?", "What appointment types do you have?"
Get Staff Members
Lists all staff members with their name, email, and role.
Triggers: "Who are your stylists?", "Can I book with Sarah?", "Who is available for appointments?"
Booking Tools
Check Availability
Checks available appointment slots for a specific service on a given date. Returns up to 10 time slots.
Input: Service ID (from Get Services) + date (YYYY-MM-DD format).
Triggers: "When can I book a haircut this Friday?", "What times are available tomorrow for a consultation?", "Is 2pm open on Thursday?"
Create Appointment
Books an appointment for a customer — requires service, start time, customer name, and email.
Input: Service ID, start time (ISO 8601), customer name, customer email. Optional: staff ID, duration in minutes, customer phone.
Returns: Appointment ID, confirmation details, and Teams meeting link if the service is virtual.
Triggers: After checking availability, the bot can confirm and create the booking in one step.
Get Appointment
Looks up an existing appointment by its ID. Returns service name, time, customer info, and status (booked, cancelled, noShow).
Triggers: "What time is my appointment?", "Can you look up booking #abc123?", "Is my appointment confirmed?"
Required Graph API Permissions
The Velaro Azure AD app must have these application permissions granted in your tenant:
BookingsAppointment.ReadWrite.All— required to create and read appointmentsBookings.Read.All— required to list services, staff, and availability
To grant these: Azure Portal → Azure Active Directory → Enterprise Applications → find Velaro → Permissions → Grant admin consent.
Tips for Best Results
- Use a starter workflow that first calls
ms_bookings_get_servicesto list options, thenms_bookings_check_availabilitywith the customer's chosen service and preferred date, thenms_bookings_create_appointmentto confirm. - Service ID is a GUID — the bot should retrieve service IDs from
ms_bookings_get_servicesbefore checking availability. Don't hardcode IDs in workflows. - Virtual services: If your Bookings service is configured as an online meeting, the created appointment will include a Teams meeting join link.
- Cancellations: Currently, the integration supports read and create. Cancellations require the customer to use the Bookings confirmation email link.
Was this article helpful?