How can we help you?

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 appointments
  • Bookings.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_services to list options, then ms_bookings_check_availability with the customer's chosen service and preferred date, then ms_bookings_create_appointment to confirm.
  • Service ID is a GUID — the bot should retrieve service IDs from ms_bookings_get_services before 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?