Microsoft Bookings · Schema
microsoft.graph.bookingBusiness
BookingSchedulingAppointmentsMicrosoft GraphCalendarMicrosoft 365
Properties
| Name | Type | Description |
|---|---|---|
| id | string | The unique identifier for an entity. Read-only. |
| @odata.type | string | |
| address | object | The street address of the business. The address property, together with phone and webSiteUrl, appear in the footer of a business scheduling page. The attribute type of physicalAddress is not supported |
| bookingPageSettings | object | Settings for the published booking page. |
| businessHours | array | The hours of operation for the business. |
| businessType | stringnull | The type of business. |
| createdDateTime | stringnull | The date, time, and time zone when the booking business was created. The timestamp type represents date and time information using ISO 8601 format and is always in UTC. For example, midnight UTC on Ja |
| defaultCurrencyIso | stringnull | The code for the currency that the business operates in on Microsoft Bookings. |
| displayName | string | The name of the business, which interfaces with customers. This name appears at the top of the business scheduling page. |
| stringnull | The email address for the business. | |
| isPublished | booleannull | The scheduling page has been made available to external customers. Use the publish and unpublish actions to set this property. Read-only. |
| languageTag | stringnull | The language of the self-service booking page. |
| lastUpdatedDateTime | stringnull | 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 |
| phone | stringnull | The telephone number for the business. The phone property, together with address and webSiteUrl, appear in the footer of a business scheduling page. |
| publicUrl | stringnull | The URL for the scheduling page, which is set after you publish or unpublish the page. Read-only. |
| schedulingPolicy | object | Specifies how bookings can be created for this business. |
| webSiteUrl | stringnull | The URL of the business web site. The webSiteUrl property, together with address, phone, appear in the footer of a business scheduling page. |
| appointments | array | All the appointments of this business. Read-only. Nullable. |
| calendarView | array | The set of appointments of this business in a specified date range. Read-only. Nullable. |
| customers | array | All the customers of this business. Read-only. Nullable. |
| customQuestions | array | All the custom questions of this business. Read-only. Nullable. |
| services | array | All the services offered by this business. Read-only. Nullable. |
| staffMembers | array | All the staff members that provide services in this business. Read-only. Nullable. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/microsoft-bookings/json-schema/microsoft-bookings-microsoft-graph-booking-business-schema.json",
"title": "microsoft.graph.bookingBusiness",
"x-generated": "2026-11-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/microsoft-bookings-graph-openapi.yml#/components/schemas/microsoft.graph.bookingBusiness",
"allOf": [
{
"$ref": "#/$defs/microsoft.graph.entity"
},
{
"title": "bookingBusiness",
"required": [
"@odata.type"
],
"type": "object",
"properties": {
"address": {
"anyOf": [
{
"$ref": "#/$defs/microsoft.graph.physicalAddress"
},
{
"type": [
"object",
"null"
]
}
],
"description": "The street address of the business. The address property, together with phone and webSiteUrl, appear in the footer of a business scheduling page. The attribute type of physicalAddress is not supported in v1.0. Internally we map the addresses to the type others."
},
"bookingPageSettings": {
"anyOf": [
{
"$ref": "#/$defs/microsoft.graph.bookingPageSettings"
},
{
"type": [
"object",
"null"
]
}
],
"description": "Settings for the published booking page."
},
"businessHours": {
"type": "array",
"items": {
"$ref": "#/$defs/microsoft.graph.bookingWorkHours"
},
"description": "The hours of operation for the business."
},
"businessType": {
"type": [
"string",
"null"
],
"description": "The type of business."
},
"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",
"null"
],
"description": "The date, time, and time zone when the booking business 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"
},
"defaultCurrencyIso": {
"type": [
"string",
"null"
],
"description": "The code for the currency that the business operates in on Microsoft Bookings."
},
"displayName": {
"type": "string",
"description": "The name of the business, which interfaces with customers. This name appears at the top of the business scheduling page."
},
"email": {
"type": [
"string",
"null"
],
"description": "The email address for the business."
},
"isPublished": {
"type": [
"boolean",
"null"
],
"description": "The scheduling page has been made available to external customers. Use the publish and unpublish actions to set this property. Read-only.",
"readOnly": true
},
"languageTag": {
"type": [
"string",
"null"
],
"description": "The language of the self-service booking page."
},
"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",
"null"
],
"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"
},
"phone": {
"type": [
"string",
"null"
],
"description": "The telephone number for the business. The phone property, together with address and webSiteUrl, appear in the footer of a business scheduling page."
},
"publicUrl": {
"type": [
"string",
"null"
],
"description": "The URL for the scheduling page, which is set after you publish or unpublish the page. Read-only.",
"readOnly": true
},
"schedulingPolicy": {
"anyOf": [
{
"$ref": "#/$defs/microsoft.graph.bookingSchedulingPolicy"
},
{
"type": [
"object",
"null"
]
}
],
"description": "Specifies how bookings can be created for this business."
},
"webSiteUrl": {
"type": [
"string",
"null"
],
"description": "The URL of the business web site. The webSiteUrl property, together with address, phone, appear in the footer of a business scheduling page."
},
"appointments": {
"type": "array",
"items": {
"$ref": "#/$defs/microsoft.graph.bookingAppointment"
},
"description": "All the appointments of this business. Read-only. Nullable.",
"x-ms-navigationProperty": true
},
"calendarView": {
"type": "array",
"items": {
"$ref": "#/$defs/microsoft.graph.bookingAppointment"
},
"description": "The set of appointments of this business in a specified date range. Read-only. Nullable.",
"x-ms-navigationProperty": true
},
"customers": {
"type": "array",
"items": {
"$ref": "#/$defs/microsoft.graph.bookingCustomerBase"
},
"description": "All the customers of this business. Read-only. Nullable.",
"x-ms-navigationProperty": true
},
"customQuestions": {
"type": "array",
"items": {
"$ref": "#/$defs/microsoft.graph.bookingCustomQuestion"
},
"description": "All the custom questions of this business. Read-only. Nullable.",
"x-ms-navigationProperty": true
},
"services": {
"type": "array",
"items": {
"$ref": "#/$defs/microsoft.graph.bookingService"
},
"description": "All the services offered by this business. Read-only. Nullable.",
"x-ms-navigationProperty": true
},
"staffMembers": {
"type": "array",
"items": {
"$ref": "#/$defs/microsoft.graph.bookingStaffMemberBase"
},
"description": "All the staff members that provide services in this business. Read-only. Nullable.",
"x-ms-navigationProperty": true
},
"@odata.type": {
"type": "string"
}
},
"description": "Represents a Microsoft Bookings Business."
}
],
"x-ms-discriminator-value": "#microsoft.graph.bookingBusiness",
"$defs": {
"ReferenceNumeric": {
"enum": [
"-INF",
"INF",
"NaN"
],
"type": [
"string",
"null"
]
},
"microsoft.graph.answerInputType": {
"title": "answerInputType",
"enum": [
"text",
"radioButton",
"unknownFutureValue"
],
"type": "string"
},
"microsoft.graph.bookingAppointment": {
"allOf": [
{
"$ref": "#/$defs/microsoft.graph.entity"
},
{
"title": "bookingAppointment",
"required": [
"@odata.type"
],
"type": "object",
"properties": {
"additionalInformation": {
"type": [
"string",
"null"
],
"description": "Additional information that is sent to the customer when an appointment is confirmed."
},
"anonymousJoinWebUrl": {
"type": [
"string",
"null"
],
"description": "The URL of the meeting to join anonymously."
},
"appointmentLabel": {
"type": [
"string",
"null"
],
"description": "The custom label that can be stamped on this appointment by users."
},
"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",
"null"
],
"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"
},
"customerEmailAddress": {
"type": [
"string",
"null"
],
"description": "The SMTP address of the bookingCustomer who books the appointment."
},
"customerName": {
"type": [
"string",
"null"
],
"description": "The customer's name."
},
"customerNotes": {
"type": [
"string",
"null"
],
"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."
},
"customerPhone": {
"type": [
"string",
"null"
],
"description": "The customer's phone number."
},
"customers": {
"type": "array",
"items": {
"$ref": "#/$defs/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",
"null"
],
"description": "The time zone of the customer. For a list of possible values, see dateTimeTimeZone."
},
"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": "#/$defs/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",
"null"
],
"description": "Indicates that the customer can manage bookings created by the staff. The default value is false."
},
"isLocationOnline": {
"type": "boolean",
"description": "Indicates that the appointment is held online. The default value is false."
},
"joinWebUrl": {
"type": [
"string",
"null"
],
"description": "The URL of the online meeting for the appointment."
},
"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",
"null"
],
"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"
},
"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",
"null"
],
"format": "double"
},
{
"type": [
"string",
"null"
]
},
{
"$ref": "#/$defs/ReferenceNumeric"
}
],
"description": "The regular price for an appointment for the specified bookingService."
},
"priceType": {
"$ref": "#/$defs/microsoft.graph.bookingPriceType"
},
"reminders": {
"type": "array",
"items": {
"$ref": "#/$defs/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",
"null"
],
"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."
},
"serviceId": {
"type": [
"string",
"null"
],
"description": "The ID of the bookingService associated with this appointment."
},
"serviceLocation": {
"anyOf": [
{
"$ref": "#/$defs/microsoft.graph.location"
},
{
"type": [
"object",
"null"
]
}
],
"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",
"null"
],
"description": "Notes from a bookingStaffMember. The value of this property is available only when reading this bookingAppointment by its ID."
},
"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",
"null"
]
},
"description": "The ID of each bookingStaffMember who is scheduled in this appointment."
},
"startDateTime": {
"$ref": "#/$defs/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"
},
"microsoft.graph.bookingCustomQuestion": {
"allOf": [
{
"$ref": "#/$defs/microsoft.graph.entity"
},
{
"title": "bookingCustomQuestion",
"required": [
"@odata.type"
],
"type": "object",
"properties": {
"answerInputType": {
"anyOf": [
{
"$ref": "#/$defs/microsoft.graph.answerInputType"
},
{
"type": [
"object",
"null"
]
}
],
"description": "The expected answer type. The possible values are: text, radioButton, unknownFutureValue."
},
"answerOptions": {
"type": "array",
"items": {
"type": [
"string",
"null"
]
},
"description": "List of possible answer values."
},
"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",
"null"
],
"description": "The date, time, and time zone when the custom question 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"
},
"displayName": {
"type": "string",
"description": "The question."
},
"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",
"null"
],
"description": "The date, time, and time zone when the custom question 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"
},
"@odata.type": {
"type": "string"
}
},
"description": "Represents a custom question of the business."
}
],
"x-ms-discriminator-value": "#microsoft.graph.bookingCustomQuestion"
},
"microsoft.graph.bookingCustomerBase": {
"allOf": [
{
"$ref": "#/$defs/microsoft.graph.entity"
},
{
"title": "bookingCustomerBase",
"required": [
"@odata.type"
],
"type": "object",
"properties": {
"@odata.type": {
"type": "string"
}
},
"description": "Booking entities that provide a display name."
}
]
},
"microsoft.graph.bookingCustomerInformationBase": {
"title": "bookingCustomerInformationBase",
"required": [
"@odata.type"
],
"type": "object",
"properties": {
"@odata.type": {
"type": "string"
}
}
},
"microsoft.graph.bookingPageAccessControl": {
"title": "bookingPageAccessControl",
"enum": [
"unrestricted",
"restrictedToOrganization",
"unknownFutureValue"
],
"type": "string"
},
"microsoft.graph.bookingPageSettings": {
"title": "bookingPageSettings",
"required": [
"@odata.type"
],
"type": "object",
"properties": {
"accessControl": {
"$ref": "#/$defs/microsoft.graph.bookingPageAccessControl"
},
"bookingPageColorCode": {
"type": "string",
"description": "Custom color for the booking page. The value should be in Hex format. For example, #123456."
},
"businessTimeZone": {
"type": "string",
"description": "The time zone of the customer. For a list of possible values, see dateTimeTimeZone."
},
"customerConsentMessage": {
"type": "string",
"description": "The personal data collection and usage consent message in the booking page."
},
"enforceOneTimePassword": {
"type": "boolean",
"description": "Determines whether the one-time password is required to create an appointment. The default value is false."
},
"isBusinessLogoDisplayEnabled": {
"type": "boolean",
"description": "Indicates whether the business logo is displayed on the booking page. The default value is false."
},
"isCustomerConsentEnabled": {
"type": "boolean",
"description": "Enables personal data collection and the usage consent toggle on the booking page. The default value is false."
},
"isSearchEngineIndexabilityDisabled": {
"type": "boolean",
"description": "Indicates whether web crawlers index this page. The defaults value is false."
},
"isTimeSlotTimeZoneSetToBusinessTimeZone": {
"type": "boolean",
"description": "Indicates whether the time zone of the time slot is set to the time zone of the business. The default value is false."
},
"privacyPolicyWebUrl": {
"type": "string",
"description": "URL of a webpage that provides the terms and conditions of the business. If a privacy policy isn't included, the following text appears on the booking page as default: 'The policies and practices of {bookingbusinessname} apply to the use of your data.'"
},
"termsAndConditionsWebUrl": {
"type": "string",
"description": "URL of a webpage that provides the terms and conditions of the business."
},
"@odata.type": {
"type": "string"
}
}
},
"microsoft.graph.bookingPriceType": {
"title": "bookingPriceType",
"enum": [
"undefined",
"fixedPrice",
"startingAt",
"hourly",
"free",
"priceVaries",
"callUs",
"notSet",
"unknownFutureValue"
],
"type": "string",
"description": "Represents the type of pricing of a booking service.",
"x-ms-enum": {
"name": "bookingPriceType",
"modelAsString": false,
"values": [
{
"value": "undefined",
"description": "The price of the service is not defined.",
"name": "undefined"
},
{
"value": "fixedPrice",
"description": "The price of the service is fixed.",
"name": "fixedPrice"
},
{
"value": "startingAt",
"description": "The price of the service starts with a particular value, but can be higher based on the final services performed.",
"name": "startingAt"
},
{
"value": "hourly",
"description": "The price of the service depends on the number of hours a staff member works on the service.",
"name": "hourly"
},
{
"value": "free",
"description": "The service is free.",
"name": "free"
},
{
"value": "priceVaries",
"description": "The price of the service varies.",
"name": "priceVaries"
},
{
"value": "callUs",
"description": "The price of the service is not listed.",
"name": "callUs"
},
{
"value": "notSet",
"description": "The price of the service is not set.",
"name": "notSet"
}
]
}
},
"microsoft.graph.bookingQuestionAssignment": {
"title": "bookingQuestionAssignment",
"required": [
"@odata.type"
],
"type": "object",
"properties": {
"isRequired": {
"type": "boolean",
"description": "Indicates whether it's mandatory to answer the custom question."
},
"questionId": {
"type": "string",
"description": "The ID of the custom question."
},
"@odata.type": {
"type": "string"
}
}
},
"microsoft.graph.bookingReminder": {
"title": "bookingReminder",
"required": [
"@odata.type"
],
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "The message in the reminder."
},
"offset": {
"pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
"type": "string",
"description": "The amount of time before the start of an appointment that the reminder should be sent. It's denoted in ISO 8601 format.",
"format": "duration"
},
"recipients": {
"$ref": "#/$defs/microsoft.graph.bookingReminderRecipients"
},
"@odata.type": {
"type": "string"
}
},
"description": "This type represents when and to whom to send an e-mail reminder."
},
"microsoft.graph.bookingReminderRecipients": {
"title": "bookingReminderRecipients",
"enum": [
"allAttendees",
"staff",
"customer",
"unknownFutureValue"
],
"type": "string"
},
"microsoft.graph.bookingSchedulingPolicy": {
"title": "bookingSchedulingPolicy",
"required": [
"@odata.type"
],
"type": "object",
"properties": {
"allowStaffSelection": {
"type": "boolean",
"description": "True to allow customers to choose a specific person for the booking."
},
"customAvailabilities": {
"type": "array",
"items": {
"$ref": "#/$defs/microsoft.graph.bookingsAvailabilityWindow"
},
"description": "Custom availability of the service in a given time frame."
},
"generalAvailability": {
"anyOf": [
{
"$ref": "#/$defs/microsoft.graph.bookingsAvailability"
},
{
"type": [
"object",
"null"
]
}
],
"description": "General availability of the service defined by the scheduling policy."
},
"isMeetingInviteToCustomersEnabled": {
"type": [
"boolean",
"null"
],
"description": "Indicates whether the meeting invite is sent to the customers. The default value is false."
},
"maximumAdvance": {
"pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
"type": "string",
"description": "Maximum number of days in advance that a booking can be made. It follows the ISO 8601 format.",
"format": "duration"
},
"minimumLeadTime": {
"pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
"type": "string",
"description": "The minimum amount of time before which bookings and cancellations must be made. It follows the ISO 8601 format.",
"format": "duration"
},
"sendConfirmationsToOwner": {
"type": "boolean",
"description": "True to notify the business via email when a booking is created or changed. Use the email address specified in the email property of the bookingBusiness entity for the business."
},
"timeSlotInterval": {
"pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
"type": "string",
"description": "Duration of each time slot, denoted in ISO 8601 format.",
"format": "duration"
},
"@odata.type": {
"type": "string"
}
},
"description": "This type represents the set of policies that dictate how bookings can be created in a Booking Calendar."
},
"microsoft.graph.bookingService": {
"allOf": [
{
"$ref": "#/$defs/microsoft.graph.entity"
},
{
"title": "bookingService",
"required": [
"@odata.type"
],
"type": "object",
"properties": {
"additionalInformation": {
"type": [
"string",
"null"
],
"description": "Additional information that is sent to the customer when an appointment is confirmed."
},
"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",
"null"
],
"description": "The date, time, and time zone when the service 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"
},
"customQuestions": {
"type": "array",
"items": {
"$ref": "#/$defs/microsoft.graph.bookingQuestionAssignment"
},
"description": "Contains the set of custom questions associated with a particular service."
},
"defaultDuration": {
"pattern": "^-?P([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+([.][0-9]+)?S)?)?$",
"type": "string",
"description": "The default length of the service, represented in numbers of days, hours, minutes, and seconds. For example, P11D23H59M59.999999999999S.",
"format": "duration"
},
"defaultLocation": {
"anyOf": [
{
"$ref": "#/$defs/microsoft.graph.location"
},
{
"type": [
"object",
"null"
]
# --- truncated at 32 KB (49 KB total) ---
# Full source: https://artifacts.apis.io/microsoft-bookings/json-schema/microsoft-bookings-microsoft-graph-booking-business-schema.json
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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/microsoft-bookings-microsoft-graph-booking-business"
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.