Microsoft Graph · Schema

microsoft.graph.bookingAppointment

Microsoft GraphAzure ADCollaborationContactsDocumentsEmailGraphIdentityMicrosoftOffice 365PresentationsProductivitySpreadsheetsT1Task

Properties

Name Type Description
additionalInformation string Additional information that is sent to the customer when an appointment is confirmed.
anonymousJoinWebUrl string The URL of the meeting to join anonymously.
appointmentLabel string The custom label that can be stamped on this appointment by users.
createdDateTime string The date, time, and time zone when the appointment was created. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1,
customerEmailAddress string The SMTP address of the bookingCustomer who books the appointment.
customerName string The customer's name.
customerNotes string Notes from the customer associated with this appointment. You can get the value only when you read this bookingAppointment by its ID. You can set this property only when you initially create an appoin
customerPhone string The customer's phone number.
customers array A collection of customer properties for an appointment. An appointment contains a list of customer information and each unit will indicate the properties of a customer who is part of that appointment.
customerTimeZone string The time zone of the customer. For a list of possible values, see dateTimeTimeZone.
duration string The length of the appointment, denoted in ISO8601 format.
endDateTime object
filledAttendeesCount number The current number of customers in the appointment.
isCustomerAllowedToManageBooking boolean Indicates that the customer can manage bookings created by the staff. The default value is false.
isLocationOnline boolean Indicates that the appointment is held online. The default value is false.
joinWebUrl string The URL of the online meeting for the appointment.
lastUpdatedDateTime string The date, time, and time zone when the booking business was last updated. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC
maximumAttendeesCount number The maximum number of customers allowed in an appointment. If maximumAttendeesCount of the service is greater than 1, pass valid customer IDs while creating or updating an appointment. To create a cus
optOutOfCustomerEmail boolean If true indicates that the bookingCustomer for this appointment doesn't wish to receive a confirmation for this appointment.
postBuffer string The amount of time to reserve after the appointment ends, for cleaning up, as an example. The value is expressed in ISO8601 format.
preBuffer string The amount of time to reserve before the appointment begins, for preparation, as an example. The value is expressed in ISO8601 format.
price object The regular price for an appointment for the specified bookingService.
priceType object
reminders array The collection of customer reminders sent for this appointment. The value of this property is available only when reading this bookingAppointment by its ID.
selfServiceAppointmentId string Another tracking ID for the appointment, if the appointment was created directly by the customer on the scheduling page, as opposed to by a staff member on behalf of the customer.
serviceId string The ID of the bookingService associated with this appointment.
serviceLocation object The location where the service is delivered.
serviceName string The name of the bookingService associated with this appointment.This property is optional when creating a new appointment. If not specified, it's computed from the service associated with the appointm
serviceNotes string Notes from a bookingStaffMember. The value of this property is available only when reading this bookingAppointment by its ID.
smsNotificationsEnabled boolean If true, indicates SMS notifications will be sent to the customers for the appointment. Default value is false.
staffMemberIds array The ID of each bookingStaffMember who is scheduled in this appointment.
startDateTime object
@odata.type string
View JSON Schema on GitHub

JSON Schema

microsoft-graph-microsoftgraphbookingappointment-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/microsoft.graph.bookingAppointment",
  "title": "microsoft.graph.bookingAppointment",
  "allOf": [
    {
      "$ref": "#/components/schemas/microsoft.graph.entity"
    },
    {
      "title": "bookingAppointment",
      "required": [
        "@odata.type"
      ],
      "type": "object",
      "properties": {
        "additionalInformation": {
          "type": "string",
          "description": "Additional information that is sent to the customer when an appointment is confirmed.",
          "nullable": true
        },
        "anonymousJoinWebUrl": {
          "type": "string",
          "description": "The URL of the meeting to join anonymously.",
          "nullable": true
        },
        "appointmentLabel": {
          "type": "string",
          "description": "The custom label that can be stamped on this appointment by users.",
          "nullable": true
        },
        "createdDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": "string",
          "description": "The date, time, and time zone when the appointment was created. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.",
          "format": "date-time",
          "nullable": true
        },
        "customerEmailAddress": {
          "type": "string",
          "description": "The SMTP address of the bookingCustomer who books the appointment.",
          "nullable": true
        },
        "customerName": {
          "type": "string",
          "description": "The customer's name.",
          "nullable": true
        },
        "customerNotes": {
          "type": "string",
          "description": "Notes from the customer associated with this appointment. You can get the value only when you read this bookingAppointment by its ID. You can set this property only when you initially create an appointment with a new customer.",
          "nullable": true
        },
        "customerPhone": {
          "type": "string",
          "description": "The customer's phone number.",
          "nullable": true
        },
        "customers": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/microsoft.graph.bookingCustomerInformationBase"
          },
          "description": "A collection of customer properties for an appointment. An appointment contains a list of customer information and each unit will indicate the properties of a customer who is part of that appointment. Optional."
        },
        "customerTimeZone": {
          "type": "string",
          "description": "The time zone of the customer. For a list of possible values, see dateTimeTimeZone.",
          "nullable": true
        },
        "duration": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": "string",
          "description": "The length of the appointment, denoted in ISO8601 format.",
          "format": "duration",
          "readOnly": true
        },
        "endDateTime": {
          "$ref": "#/components/schemas/microsoft.graph.dateTimeTimeZone"
        },
        "filledAttendeesCount": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The current number of customers in the appointment.",
          "format": "int32",
          "readOnly": true
        },
        "isCustomerAllowedToManageBooking": {
          "type": "boolean",
          "description": "Indicates that the customer can manage bookings created by the staff. The default value is false.",
          "nullable": true
        },
        "isLocationOnline": {
          "type": "boolean",
          "description": "Indicates that the appointment is held online. The default value is false."
        },
        "joinWebUrl": {
          "type": "string",
          "description": "The URL of the online meeting for the appointment.",
          "nullable": true
        },
        "lastUpdatedDateTime": {
          "pattern": "^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$",
          "type": "string",
          "description": "The date, time, and time zone when the booking business was last updated. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z.",
          "format": "date-time",
          "nullable": true
        },
        "maximumAttendeesCount": {
          "maximum": 2147483647,
          "minimum": -2147483648,
          "type": "number",
          "description": "The maximum number of customers allowed in an appointment. If maximumAttendeesCount of the service is greater than 1, pass valid customer IDs while creating or updating an appointment. To create a customer, use the Create bookingCustomer operation.",
          "format": "int32"
        },
        "optOutOfCustomerEmail": {
          "type": "boolean",
          "description": "If true indicates that the bookingCustomer for this appointment doesn't wish to receive a confirmation for this appointment."
        },
        "postBuffer": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": "string",
          "description": "The amount of time to reserve after the appointment ends, for cleaning up, as an example. The value is expressed in ISO8601 format.",
          "format": "duration"
        },
        "preBuffer": {
          "pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
          "type": "string",
          "description": "The amount of time to reserve before the appointment begins, for preparation, as an example. The value is expressed in ISO8601 format.",
          "format": "duration"
        },
        "price": {
          "oneOf": [
            {
              "type": "number",
              "format": "double",
              "nullable": true
            },
            {
              "type": "string",
              "nullable": true
            },
            {
              "$ref": "#/components/schemas/ReferenceNumeric"
            }
          ],
          "description": "The regular price for an appointment for the specified bookingService."
        },
        "priceType": {
          "$ref": "#/components/schemas/microsoft.graph.bookingPriceType"
        },
        "reminders": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/microsoft.graph.bookingReminder"
          },
          "description": "The collection of customer reminders sent for this appointment. The value of this property is available only when reading this bookingAppointment by its ID."
        },
        "selfServiceAppointmentId": {
          "type": "string",
          "description": "Another tracking ID for the appointment, if the appointment was created directly by the customer on the scheduling page, as opposed to by a staff member on behalf of the customer.",
          "nullable": true
        },
        "serviceId": {
          "type": "string",
          "description": "The ID of the bookingService associated with this appointment.",
          "nullable": true
        },
        "serviceLocation": {
          "anyOf": [
            {
              "$ref": "#/components/schemas/microsoft.graph.location"
            },
            {
              "type": "object",
              "nullable": true
            }
          ],
          "description": "The location where the service is delivered."
        },
        "serviceName": {
          "type": "string",
          "description": "The name of the bookingService associated with this appointment.This property is optional when creating a new appointment. If not specified, it's computed from the service associated with the appointment by the serviceId property."
        },
        "serviceNotes": {
          "type": "string",
          "description": "Notes from a bookingStaffMember. The value of this property is available only when reading this bookingAppointment by its ID.",
          "nullable": true
        },
        "smsNotificationsEnabled": {
          "type": "boolean",
          "description": "If true, indicates SMS notifications will be sent to the customers for the appointment. Default value is false."
        },
        "staffMemberIds": {
          "type": "array",
          "items": {
            "type": "string",
            "nullable": true
          },
          "description": "The ID of each bookingStaffMember who is scheduled in this appointment."
        },
        "startDateTime": {
          "$ref": "#/components/schemas/microsoft.graph.dateTimeTimeZone"
        },
        "@odata.type": {
          "type": "string"
        }
      },
      "description": "Represents a booked appointment of a service by a customer in a business."
    }
  ],
  "x-ms-discriminator-value": "#microsoft.graph.bookingAppointment"
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/microsoft-graph-microsoftgraphbookingappointment"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.