HighLevel · Schema
CalendarUpdateDTO
CompanySoftware-as-a-ServiceMarketingCRMAutomationMarketing Automation
Properties
| Name | Type | Description |
|---|---|---|
| notifications | array | 🚨 Deprecated! Please use 'Calendar Notifications APIs' instead. |
| groupId | string | Group Id |
| teamMembers | array | Team members are required for calendars of type: Round Robin, Collective, Class, Service. Personal calendar must have exactly one team member. |
| eventType | string | |
| name | string | |
| description | string | |
| slug | string | |
| widgetSlug | string | |
| widgetType | string | Calendar widget type. Choose "default" for "neo" and "classic" for "classic" layout. |
| eventTitle | string | |
| eventColor | string | |
| locationConfigurations | array | Meeting location configuration for event calendar |
| meetingLocation | string | 🚨 Deprecated! Use `locationConfigurations.location` or `teamMembers[].locationConfigurations.location` instead. |
| slotDuration | number | This controls the duration of the meeting |
| slotDurationUnit | string | Unit for slot duration. |
| preBufferUnit | string | Unit for pre-buffer. |
| slotInterval | number | Slot interval reflects the amount of time the between booking slots that will be shown in the calendar. |
| slotIntervalUnit | string | Unit for slot interval. |
| slotBuffer | number | Slot-Buffer is additional time that can be added after an appointment, allowing for extra time to wrap up |
| preBuffer | number | Pre-Buffer is additional time that can be added before an appointment, allowing for extra time to get ready |
| appoinmentPerSlot | number | |
| appoinmentPerDay | number | Number of appointments that can be booked for a given day |
| allowBookingAfter | number | Minimum scheduling notice for events |
| allowBookingAfterUnit | string | Unit for minimum scheduling notice |
| allowBookingFor | number | Minimum number of days/weeks/months for which to allow booking events |
| allowBookingForUnit | string | Unit for controlling the duration for which booking would be allowed for |
| openHours | array | |
| enableRecurring | boolean | Enable recurring appointments for the calendars. Please note that only one member should be added in the calendar to enable this |
| recurring | object | |
| formId | string | |
| stickyContact | boolean | |
| isLivePaymentMode | boolean | |
| autoConfirm | boolean | |
| shouldSendAlertEmailsToAssignedMember | boolean | |
| alertEmail | string | |
| googleInvitationEmails | boolean | |
| allowReschedule | boolean | |
| allowCancellation | boolean | |
| shouldAssignContactToTeamMember | boolean | |
| shouldSkipAssigningContactForExisting | boolean | |
| notes | string | |
| pixelId | string | |
| formSubmitType | string | |
| formSubmitRedirectURL | string | |
| formSubmitThanksMessage | string | |
| availabilityType | number | Determines which availability type to consider: - **1**: Only custom availabilities will be used. - **0**: Only open hours will be used. - **null**: Both the custom availabilities and open hours will |
| availabilities | array | This is only to set the custom availability. For standard availability, use the openHours property |
| guestType | string | |
| consentLabel | string | |
| calendarCoverImage | string | |
| lookBusyConfig | object | Look Busy Configuration |
| isActive | boolean |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/highlevel/main/json-schema/highlevel-calendar-update-dto-schema.json",
"title": "CalendarUpdateDTO",
"x-generated": "2026-09-22",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/highlevel-calendars-openapi.json#/components/schemas/CalendarUpdateDTO",
"type": "object",
"properties": {
"notifications": {
"description": "🚨 Deprecated! Please use 'Calendar Notifications APIs' instead.",
"deprecated": true,
"type": "array",
"items": {
"$ref": "#/$defs/CalendarNotification"
}
},
"groupId": {
"type": "string",
"description": "Group Id"
},
"teamMembers": {
"description": "Team members are required for calendars of type: Round Robin, Collective, Class, Service. Personal calendar must have exactly one team member.",
"type": "array",
"items": {
"$ref": "#/$defs/TeamMember"
}
},
"eventType": {
"type": "string",
"enum": [
"RoundRobin_OptimizeForAvailability",
"RoundRobin_OptimizeForEqualDistribution"
]
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"slug": {
"type": "string"
},
"widgetSlug": {
"type": "string"
},
"widgetType": {
"type": "string",
"description": "Calendar widget type. Choose \"default\" for \"neo\" and \"classic\" for \"classic\" layout.",
"enum": [
"default",
"classic"
],
"default": "classic"
},
"eventTitle": {
"type": "string"
},
"eventColor": {
"type": "string",
"default": "#039be5"
},
"locationConfigurations": {
"description": "Meeting location configuration for event calendar",
"type": "array",
"items": {
"$ref": "#/$defs/LocationConfiguration"
}
},
"meetingLocation": {
"type": "string",
"description": "🚨 Deprecated! Use `locationConfigurations.location` or `teamMembers[].locationConfigurations.location` instead.",
"deprecated": true,
"readOnly": true
},
"slotDuration": {
"type": "number",
"description": "This controls the duration of the meeting",
"default": 30
},
"slotDurationUnit": {
"type": "string",
"description": "Unit for slot duration.",
"enum": [
"mins",
"hours"
]
},
"preBufferUnit": {
"type": "string",
"description": "Unit for pre-buffer.",
"enum": [
"mins",
"hours"
]
},
"slotInterval": {
"type": "number",
"description": "Slot interval reflects the amount of time the between booking slots that will be shown in the calendar.",
"default": 30
},
"slotIntervalUnit": {
"type": "string",
"description": "Unit for slot interval.",
"enum": [
"mins",
"hours"
]
},
"slotBuffer": {
"type": "number",
"description": "Slot-Buffer is additional time that can be added after an appointment, allowing for extra time to wrap up"
},
"preBuffer": {
"type": "number",
"description": "Pre-Buffer is additional time that can be added before an appointment, allowing for extra time to get ready"
},
"appoinmentPerSlot": {
"type": "number"
},
"appoinmentPerDay": {
"type": "number",
"description": "Number of appointments that can be booked for a given day"
},
"allowBookingAfter": {
"type": "number",
"description": "Minimum scheduling notice for events"
},
"allowBookingAfterUnit": {
"type": "string",
"description": "Unit for minimum scheduling notice",
"enum": [
"hours",
"days",
"weeks",
"months"
]
},
"allowBookingFor": {
"type": "number",
"description": "Minimum number of days/weeks/months for which to allow booking events"
},
"allowBookingForUnit": {
"type": "string",
"description": "Unit for controlling the duration for which booking would be allowed for",
"enum": [
"days",
"weeks",
"months"
]
},
"openHours": {
"type": "array",
"items": {
"$ref": "#/$defs/OpenHour"
}
},
"enableRecurring": {
"type": "boolean",
"description": "Enable recurring appointments for the calendars. Please note that only one member should be added in the calendar to enable this",
"default": false
},
"recurring": {
"$ref": "#/$defs/Recurring"
},
"formId": {
"type": "string"
},
"stickyContact": {
"type": "boolean"
},
"isLivePaymentMode": {
"type": "boolean"
},
"autoConfirm": {
"type": "boolean"
},
"shouldSendAlertEmailsToAssignedMember": {
"type": "boolean"
},
"alertEmail": {
"type": "string"
},
"googleInvitationEmails": {
"type": "boolean"
},
"allowReschedule": {
"type": "boolean"
},
"allowCancellation": {
"type": "boolean"
},
"shouldAssignContactToTeamMember": {
"type": "boolean"
},
"shouldSkipAssigningContactForExisting": {
"type": "boolean"
},
"notes": {
"type": "string"
},
"pixelId": {
"type": "string"
},
"formSubmitType": {
"type": "string",
"default": "ThankYouMessage",
"enum": [
"RedirectURL",
"ThankYouMessage"
]
},
"formSubmitRedirectURL": {
"type": "string"
},
"formSubmitThanksMessage": {
"type": "string"
},
"availabilityType": {
"type": "number",
"description": "Determines which availability type to consider:\n- **1**: Only custom availabilities will be used.\n- **0**: Only open hours will be used.\n- **null**: Both the custom availabilities and open hours will be considered.",
"enum": [
0,
1
]
},
"availabilities": {
"description": "This is only to set the custom availability. For standard availability, use the openHours property",
"type": "array",
"items": {
"$ref": "#/$defs/UpdateAvailability"
}
},
"guestType": {
"type": "string",
"enum": [
"count_only",
"collect_detail"
]
},
"consentLabel": {
"type": "string"
},
"calendarCoverImage": {
"type": "string"
},
"lookBusyConfig": {
"description": "Look Busy Configuration",
"allOf": [
{
"$ref": "#/$defs/LookBusyConfiguration"
}
]
},
"isActive": {
"type": "boolean"
}
},
"$defs": {
"CalendarNotification": {
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Calendar Notification",
"enum": [
"email"
],
"default": "email"
},
"shouldSendToContact": {
"type": "boolean"
},
"shouldSendToGuest": {
"type": "boolean"
},
"shouldSendToUser": {
"type": "boolean"
},
"shouldSendToSelectedUsers": {
"type": "boolean"
},
"selectedUsers": {
"type": "string",
"description": "Comma separated emails"
}
},
"required": [
"shouldSendToContact",
"shouldSendToGuest",
"shouldSendToUser",
"shouldSendToSelectedUsers",
"selectedUsers"
]
},
"Hour": {
"type": "object",
"properties": {
"openHour": {
"type": "number",
"minimum": 0,
"maximum": 23
},
"openMinute": {
"type": "number",
"minimum": 0,
"maximum": 60
},
"closeHour": {
"type": "number",
"minimum": 0,
"maximum": 23
},
"closeMinute": {
"type": "number",
"minimum": 0,
"maximum": 60
}
},
"required": [
"openHour",
"openMinute",
"closeHour",
"closeMinute"
]
},
"LocationConfiguration": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"description": "Type of meeting location. zoom_conference/google_conference/ms_teams_conference is not supported in event calendar type",
"enum": [
"custom",
"zoom_conference",
"google_conference",
"inbound_call",
"outbound_call",
"physical",
"booker",
"ms_teams_conference"
]
},
"location": {
"type": "string",
"description": "Address for meeting location. Not applicable on \"zoom_conference\", \"google_conference\" and \"ms_teams_conference\" kind"
}
},
"required": [
"kind"
]
},
"LookBusyConfiguration": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"description": "Apply Look Busy",
"default": false
},
"LookBusyPercentage": {
"type": "number",
"description": "Percentage of slots that will be hidden"
}
},
"required": [
"enabled",
"LookBusyPercentage"
]
},
"OpenHour": {
"type": "object",
"properties": {
"daysOfTheWeek": {
"type": "array",
"items": {
"type": "number",
"maximum": 6,
"minimum": 0
}
},
"hours": {
"type": "array",
"items": {
"$ref": "#/$defs/Hour"
}
}
},
"required": [
"daysOfTheWeek",
"hours"
]
},
"Recurring": {
"type": "object",
"properties": {
"freq": {
"type": "string",
"enum": [
"DAILY",
"WEEKLY",
"MONTHLY"
]
},
"count": {
"type": "number",
"description": "Number of recurrences",
"maximum": 24
},
"bookingOption": {
"type": "string",
"description": "This setting contols what to do incase a recurring slot is unavailable",
"enum": [
"skip",
"continue",
"book_next"
]
},
"bookingOverlapDefaultStatus": {
"type": "string",
"description": "This setting contols what to do incase a recurring slot is unavailable",
"enum": [
"confirmed",
"new"
]
}
}
},
"TeamMember": {
"type": "object",
"properties": {
"userId": {
"type": "string"
},
"priority": {
"type": "number",
"default": 0.5,
"enum": [
0,
0.5,
1
]
},
"meetingLocationType": {
"type": "string",
"description": "🚨 Deprecated! Use `locationConfigurations.kind` instead.",
"deprecated": true,
"default": "custom",
"readOnly": true,
"enum": [
"custom",
"zoom",
"gmeet",
"phone",
"address",
"teams",
"booker"
]
},
"meetingLocation": {
"type": "string",
"description": "🚨 Deprecated! Use `locationConfigurations.location` instead.",
"deprecated": true,
"readOnly": true
},
"isPrimary": {
"type": "boolean",
"description": "Marks a user as primary. This property is required in case of collective booking calendars. Only one user can be primary."
},
"locationConfigurations": {
"description": "Meeting location configuration for event calendar.\n- *Multiple locations are allowed only when one team member is selected.*\n- *For **Class booking** and **Collective** calendars, only one location configuration is allowed for each team member.*",
"type": "array",
"items": {
"$ref": "#/$defs/LocationConfiguration"
}
}
},
"required": [
"userId"
]
},
"UpdateAvailability": {
"type": "object",
"properties": {
"date": {
"type": "string",
"description": "Formulate the date string in the format of `<YYYY-MM-DD in local timezone>T00:00:00.000Z`."
},
"hours": {
"type": "array",
"items": {
"$ref": "#/$defs/Hour"
}
},
"deleted": {
"type": "boolean",
"default": false
},
"id": {
"type": "string",
"description": "The ID of the custom availability object. It is required while updating or deleting the existing custom date availability"
}
},
"required": [
"date",
"hours"
]
}
}
}
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/highlevel-calendar-update-dto"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.