> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Bookings Integration for AI Agents & Workflows

> Create and manage Microsoft Bookings businesses, services, staff members, customers, and appointments via the Microsoft Graph API.

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img src="https://mintcdn.com/modulexaillc/df8MOr-hXotYLTh5/logos/microsoft-bookings.svg?fit=max&auto=format&n=df8MOr-hXotYLTh5&q=85&s=fc83d629f9e9012598164281750a0ea9" alt="Microsoft Bookings logo" width="72" height="72" data-path="logos/microsoft-bookings.svg" />

## Overview

Add **Microsoft Bookings** to any ModuleX agent or workflow. Create and manage Microsoft Bookings businesses, services, staff members, customers, and appointments through the Microsoft Graph API (`graph.microsoft.com/v1.0`).

<Info>
  **Categories**: Scheduling & Events · Productivity & Collaboration · Scheduling · Business Services · **Auth**: OAuth2 · **Actions**: 10
</Info>

## Authentication

### OAuth2 Authentication

Connect using a Microsoft (Azure AD / Entra ID) OAuth app with Bookings scopes.

#### Required Credentials

| Field         | Description                                               | Required | Format                                     |
| ------------- | --------------------------------------------------------- | -------- | ------------------------------------------ |
| Client ID     | Application (client) ID of the Azure AD app registration. | Yes      | `00000000-0000-0000-0000-000000000000`     |
| Client Secret | Client secret value from the Azure AD app registration.   | Yes      | `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` |

#### OAuth Configuration

* **Authorization URL**: `https://login.microsoftonline.com/common/oauth2/v2.0/authorize`
* **Token URL**: `https://login.microsoftonline.com/common/oauth2/v2.0/token`
* **Scopes**: `offline_access`, `Bookings.Read.All`, `BookingsAppointment.ReadWrite.All`, `Bookings.ReadWrite.All`, `Bookings.Manage.All`

## Available Actions

<AccordionGroup>
  <Accordion title="cancel_appointment — Cancel an existing appointment in a Microsoft Bookings business with a customer-facing message.">
    ### Parameters

    <ResponseField name="business_id" type="string" required>
      ID of the Microsoft Bookings business that owns the appointment.
    </ResponseField>

    <ResponseField name="appointment_id" type="string" required>
      ID of the appointment to cancel.
    </ResponseField>

    <ResponseField name="cancellation_message" type="string" required>
      Message sent to the customer and staff members explaining the cancellation.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        }
      },
      "required": [
        "success"
      ],
      "title": "CancelAppointmentOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_appointment — Create a new appointment for a customer with a chosen service in a Microsoft Bookings business.">
    ### Parameters

    <ResponseField name="business_id" type="string" required>
      ID of the Microsoft Bookings business that will own the appointment.
    </ResponseField>

    <ResponseField name="service_id" type="string" required>
      ID of the booking service the customer is booking.
    </ResponseField>

    <ResponseField name="customer_id" type="string" required>
      ID of the existing customer the appointment is being booked for.
    </ResponseField>

    <ResponseField name="start_date_time" type="string" required>
      Appointment start time in ISO 8601 format (e.g. 2024-05-01T12:00:00).
    </ResponseField>

    <ResponseField name="end_date_time" type="string" required>
      Appointment end time in ISO 8601 format (e.g. 2024-05-01T13:00:00).
    </ResponseField>

    <ResponseField name="time_zone" type="string" required>
      IANA time zone for the appointment (e.g. UTC, America/Chicago).
    </ResponseField>

    <ResponseField name="customer_name" type="string">
      Display name to record for the customer on this appointment.
    </ResponseField>

    <ResponseField name="customer_email_address" type="string">
      SMTP email address for the customer on this appointment.
    </ResponseField>

    <ResponseField name="customer_time_zone" type="string">
      IANA time zone for the customer (falls back to time\_zone if omitted).
    </ResponseField>

    <ResponseField name="customer_phone" type="string">
      Phone number to record for the customer on this appointment.
    </ResponseField>

    <ResponseField name="customer_notes" type="string">
      Notes from the customer associated with this appointment.
    </ResponseField>

    <ResponseField name="is_location_online" type="boolean">
      True indicates that the appointment will be held online.
    </ResponseField>

    <ResponseField name="staff_member_ids" type="array">
      List of staff member IDs assigned to this appointment.
    </ResponseField>

    <ResponseField name="sms_notifications_enabled" type="boolean">
      If True, send SMS notifications to the customer for the appointment.
    </ResponseField>

    <ResponseField name="price" type="number">
      Regular monetary price for the appointment.
    </ResponseField>

    <ResponseField name="price_type" type="string">
      Pricing structure: undefined, fixedPrice, startingAt, hourly, free, priceVaries, callUs, notSet.
    </ResponseField>

    <ResponseField name="duration" type="string">
      Appointment length in ISO 8601 duration (e.g. PT1H, PT30M).
    </ResponseField>

    <ResponseField name="maximum_attendees_count" type="integer">
      Maximum number of customers allowed in this appointment.
    </ResponseField>

    <ResponseField name="pre_buffer" type="string">
      Time to reserve before the appointment in ISO 8601 duration (e.g. PT15M).
    </ResponseField>

    <ResponseField name="post_buffer" type="string">
      Time to reserve after the appointment in ISO 8601 duration (e.g. PT15M).
    </ResponseField>

    <ResponseField name="service_notes" type="string">
      Notes from the staff member about this appointment.
    </ResponseField>

    <ResponseField name="additional_information" type="string">
      Additional information sent to the customer when the appointment is confirmed.
    </ResponseField>

    <ResponseField name="is_customer_allowed_to_manage_booking" type="boolean">
      True allows the customer to manage bookings created by the staff.
    </ResponseField>

    <ResponseField name="opt_out_of_customer_email" type="boolean">
      If True, the customer will not receive an email confirmation for this appointment.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "AppointmentSummary": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "self_service_appointment_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Self Service Appointment Id"
            },
            "service_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Service Id"
            },
            "service_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Service Name"
            },
            "customer_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Customer Name"
            },
            "customer_email_address": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Customer Email Address"
            },
            "customer_time_zone": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Customer Time Zone"
            },
            "start_date_time": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Start Date Time"
            },
            "end_date_time": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "End Date Time"
            },
            "duration": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Duration"
            },
            "price": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Price"
            },
            "price_type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Price Type"
            },
            "is_location_online": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Location Online"
            },
            "join_web_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Join Web Url"
            },
            "sms_notifications_enabled": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Sms Notifications Enabled"
            },
            "staff_member_ids": {
              "items": {
                "type": "string"
              },
              "title": "Staff Member Ids",
              "type": "array"
            },
            "customers": {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "title": "Customers",
              "type": "array"
            }
          },
          "title": "AppointmentSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "appointment": {
          "anyOf": [
            {
              "$ref": "#/$defs/AppointmentSummary"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateAppointmentOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_business — Create a new Microsoft Bookings business.">
    ### Parameters

    <ResponseField name="display_name" type="string" required>
      Customer-facing name of the booking business.
    </ResponseField>

    <ResponseField name="email" type="string">
      Email address for the business.
    </ResponseField>

    <ResponseField name="phone" type="string">
      Telephone number for the business.
    </ResponseField>

    <ResponseField name="web_site_url" type="string">
      URL of the business web site.
    </ResponseField>

    <ResponseField name="street" type="string">
      Street address of the business.
    </ResponseField>

    <ResponseField name="city" type="string">
      City of the business.
    </ResponseField>

    <ResponseField name="state" type="string">
      State of the business.
    </ResponseField>

    <ResponseField name="postal_code" type="string">
      Postal code of the business.
    </ResponseField>

    <ResponseField name="country_or_region" type="string">
      Country or region of the business.
    </ResponseField>

    <ResponseField name="default_currency_iso" type="string">
      ISO currency code the business operates in (e.g. USD).
    </ResponseField>

    <ResponseField name="business_type" type="string">
      Free-form description of the type of business.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "BusinessSummary": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "display_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Display Name"
            },
            "email": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Email"
            },
            "phone": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Phone"
            },
            "web_site_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Web Site Url"
            },
            "default_currency_iso": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Default Currency Iso"
            },
            "business_type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Business Type"
            },
            "address": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Address"
            },
            "is_published": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Published"
            },
            "public_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Public Url"
            }
          },
          "title": "BusinessSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "business": {
          "anyOf": [
            {
              "$ref": "#/$defs/BusinessSummary"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateBusinessOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_customer — Create a new customer record in a Microsoft Bookings business.">
    ### Parameters

    <ResponseField name="business_id" type="string" required>
      ID of the Microsoft Bookings business that will own the customer.
    </ResponseField>

    <ResponseField name="display_name" type="string" required>
      Customer's full name.
    </ResponseField>

    <ResponseField name="email_address" type="string" required>
      Customer's email address.
    </ResponseField>

    <ResponseField name="phone_number" type="string">
      Customer's phone number.
    </ResponseField>

    <ResponseField name="phone_type" type="string">
      Type of phone number: home, business, mobile. (Default: `home`)
    </ResponseField>

    <ResponseField name="street" type="string">
      Street address for the customer.
    </ResponseField>

    <ResponseField name="city" type="string">
      City for the customer.
    </ResponseField>

    <ResponseField name="state" type="string">
      State for the customer.
    </ResponseField>

    <ResponseField name="postal_code" type="string">
      Postal code for the customer.
    </ResponseField>

    <ResponseField name="country_or_region" type="string">
      Country or region for the customer.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "CustomerSummary": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "display_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Display Name"
            },
            "email_address": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Email Address"
            },
            "phones": {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "title": "Phones",
              "type": "array"
            },
            "addresses": {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "title": "Addresses",
              "type": "array"
            }
          },
          "title": "CustomerSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "customer": {
          "anyOf": [
            {
              "$ref": "#/$defs/CustomerSummary"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateCustomerOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_service — Create a new bookable service in a Microsoft Bookings business.">
    ### Parameters

    <ResponseField name="business_id" type="string" required>
      ID of the Microsoft Bookings business that will own the service.
    </ResponseField>

    <ResponseField name="display_name" type="string" required>
      Customer-facing name of the service.
    </ResponseField>

    <ResponseField name="default_duration" type="string">
      Default service length in ISO 8601 duration (e.g. PT1H30M).
    </ResponseField>

    <ResponseField name="description" type="string">
      Free-form description for the service.
    </ResponseField>

    <ResponseField name="default_price" type="number">
      Default monetary price for the service.
    </ResponseField>

    <ResponseField name="default_price_type" type="string">
      Default pricing structure: undefined, fixedPrice, startingAt, hourly, free, priceVaries, callUs, notSet.
    </ResponseField>

    <ResponseField name="is_location_online" type="boolean">
      True indicates the service will be held online.
    </ResponseField>

    <ResponseField name="staff_member_ids" type="array">
      List of staff member IDs allowed to provide this service.
    </ResponseField>

    <ResponseField name="is_hidden_from_customers" type="boolean">
      True hides this service from the customer-facing booking page.
    </ResponseField>

    <ResponseField name="notes" type="string">
      Additional notes about this service (staff-facing).
    </ResponseField>

    <ResponseField name="sms_notifications_enabled" type="boolean">
      True enables SMS notifications to customers for this service.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "ServiceSummary": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "display_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Display Name"
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Description"
            },
            "default_duration": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Default Duration"
            },
            "default_price": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Default Price"
            },
            "default_price_type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Default Price Type"
            },
            "is_location_online": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Location Online"
            },
            "is_hidden_from_customers": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Hidden From Customers"
            },
            "notes": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Notes"
            },
            "staff_member_ids": {
              "items": {
                "type": "string"
              },
              "title": "Staff Member Ids",
              "type": "array"
            },
            "sms_notifications_enabled": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Sms Notifications Enabled"
            }
          },
          "title": "ServiceSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "service": {
          "anyOf": [
            {
              "$ref": "#/$defs/ServiceSummary"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateServiceOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="create_staff_member — Create a new staff member in a Microsoft Bookings business.">
    ### Parameters

    <ResponseField name="business_id" type="string" required>
      ID of the Microsoft Bookings business that will own the staff member.
    </ResponseField>

    <ResponseField name="display_name" type="string" required>
      Staff member's name as shown to customers.
    </ResponseField>

    <ResponseField name="email_address" type="string" required>
      Staff member's email address.
    </ResponseField>

    <ResponseField name="role" type="string" required>
      Staff member's role: guest, administrator, viewer, externalGuest, scheduler, teamMember.
    </ResponseField>

    <ResponseField name="time_zone" type="string">
      IANA time zone for the staff member (e.g. America/Chicago).
    </ResponseField>

    <ResponseField name="use_business_hours" type="boolean">
      True means the staff member follows the business' default hours; False uses workingHours.
    </ResponseField>

    <ResponseField name="is_email_notification_enabled" type="boolean">
      True to send email notifications to this staff member.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "StaffMemberSummary": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "display_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Display Name"
            },
            "email_address": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Email Address"
            },
            "role": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Role"
            },
            "time_zone": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Time Zone"
            },
            "use_business_hours": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Use Business Hours"
            },
            "is_email_notification_enabled": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Email Notification Enabled"
            },
            "availability_is_affected_by_personal_calendar": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Availability Is Affected By Personal Calendar"
            }
          },
          "title": "StaffMemberSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "staff_member": {
          "anyOf": [
            {
              "$ref": "#/$defs/StaffMemberSummary"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "CreateStaffMemberOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_appointments — List appointments within a date range for a Microsoft Bookings business via calendarView.">
    ### Parameters

    <ResponseField name="business_id" type="string" required>
      ID of the Microsoft Bookings business to query.
    </ResponseField>

    <ResponseField name="start_date" type="string" required>
      Calendar view start in ISO 8601 (e.g. 2024-05-01T00:00:00Z).
    </ResponseField>

    <ResponseField name="end_date" type="string" required>
      Calendar view end in ISO 8601 (e.g. 2024-05-31T23:59:59Z).
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "AppointmentSummary": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "self_service_appointment_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Self Service Appointment Id"
            },
            "service_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Service Id"
            },
            "service_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Service Name"
            },
            "customer_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Customer Name"
            },
            "customer_email_address": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Customer Email Address"
            },
            "customer_time_zone": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Customer Time Zone"
            },
            "start_date_time": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Start Date Time"
            },
            "end_date_time": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "End Date Time"
            },
            "duration": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Duration"
            },
            "price": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Price"
            },
            "price_type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Price Type"
            },
            "is_location_online": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Location Online"
            },
            "join_web_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Join Web Url"
            },
            "sms_notifications_enabled": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Sms Notifications Enabled"
            },
            "staff_member_ids": {
              "items": {
                "type": "string"
              },
              "title": "Staff Member Ids",
              "type": "array"
            },
            "customers": {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "title": "Customers",
              "type": "array"
            }
          },
          "title": "AppointmentSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "appointments": {
          "items": {
            "$ref": "#/$defs/AppointmentSummary"
          },
          "title": "Appointments",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListAppointmentsOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_businesses — List all Microsoft Bookings businesses accessible to the authenticated user.">
    ### Response

    ```json theme={null}
    {
      "$defs": {
        "BusinessSummary": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "display_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Display Name"
            },
            "email": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Email"
            },
            "phone": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Phone"
            },
            "web_site_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Web Site Url"
            },
            "default_currency_iso": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Default Currency Iso"
            },
            "business_type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Business Type"
            },
            "address": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Address"
            },
            "is_published": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Published"
            },
            "public_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Public Url"
            }
          },
          "title": "BusinessSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "businesses": {
          "items": {
            "$ref": "#/$defs/BusinessSummary"
          },
          "title": "Businesses",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListBusinessesOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_services — List all bookable services for a Microsoft Bookings business.">
    ### Parameters

    <ResponseField name="business_id" type="string" required>
      ID of the Microsoft Bookings business to query.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "ServiceSummary": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "display_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Display Name"
            },
            "description": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Description"
            },
            "default_duration": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Default Duration"
            },
            "default_price": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Default Price"
            },
            "default_price_type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Default Price Type"
            },
            "is_location_online": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Location Online"
            },
            "is_hidden_from_customers": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Hidden From Customers"
            },
            "notes": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Notes"
            },
            "staff_member_ids": {
              "items": {
                "type": "string"
              },
              "title": "Staff Member Ids",
              "type": "array"
            },
            "sms_notifications_enabled": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Sms Notifications Enabled"
            }
          },
          "title": "ServiceSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "services": {
          "items": {
            "$ref": "#/$defs/ServiceSummary"
          },
          "title": "Services",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListServicesOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_staff_members — List all staff members for a Microsoft Bookings business.">
    ### Parameters

    <ResponseField name="business_id" type="string" required>
      ID of the Microsoft Bookings business to query.
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "StaffMemberSummary": {
          "additionalProperties": false,
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "display_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Display Name"
            },
            "email_address": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Email Address"
            },
            "role": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Role"
            },
            "time_zone": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Time Zone"
            },
            "use_business_hours": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Use Business Hours"
            },
            "is_email_notification_enabled": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Is Email Notification Enabled"
            },
            "availability_is_affected_by_personal_calendar": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Availability Is Affected By Personal Calendar"
            }
          },
          "title": "StaffMemberSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "staff_members": {
          "items": {
            "$ref": "#/$defs/StaffMemberSummary"
          },
          "title": "Staff Members",
          "type": "array"
        },
        "total": {
          "default": 0,
          "title": "Total",
          "type": "integer"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListStaffMembersOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* Microsoft Graph enforces a per-app and per-user throttling envelope; Bookings endpoints typically allow a few thousand requests per 10-minute window per app+tenant. See the [Microsoft Graph throttling guidance](https://learn.microsoft.com/en-us/graph/throttling) for current limits.
* Creating appointments requires that the referenced `customer_id` already exists in the business; the tool will surface the underlying Graph error if it does not.
* **Error model**: non-2xx Graph responses and timeouts are caught and returned as `success=False` + `error` rather than raising. Plan for retries on the agent side based on the error string.
* Dynamic ID dropdowns (business/staff/service/customer/appointment pickers) are not part of this integration; the LLM must supply IDs directly. Use the `list_*` tools to enumerate available IDs first.

## Related integrations

<CardGroup cols={3}>
  <Card title="Google Calendar" href="/integrations/tools/google-calendar" />

  <Card title="Cal.com" href="/integrations/tools/cal-com" />

  <Card title="Luma" href="/integrations/tools/luma" />
</CardGroup>

## Links

* [Microsoft Bookings](https://www.microsoft.com/en-us/microsoft-365/business/scheduling-and-booking-app)
