HighLevel · Schema

CalendarCreateDTO

CompanySoftware-as-a-ServiceMarketingCRMAutomationMarketing Automation

Properties

Name Type Description
isActive boolean Should the created calendar be active or draft
notifications array 🚨 Deprecated! Please use 'Calendar Notifications APIs' instead.
locationId string
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
calendarType string
widgetType string Calendar widget type. Choose "default" for "neo" and "classic" for "classic" layout.
eventTitle string
eventColor string
meetingLocation string 🚨 Deprecated! Use `locationConfigurations.location` or `teamMembers[].locationConfigurations.location` instead.
locationConfigurations array Meeting location configuration for event calendar
slotDuration number This controls the duration of the meeting
slotDurationUnit string Unit for slot duration.
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
slotBufferUnit string Unit for slot buffer.
preBuffer number Pre-Buffer is additional time that can be added before an appointment, allowing for extra time to get ready
preBufferUnit string Unit for pre-buffer.
appoinmentPerSlot number Maximum bookings per slot (per user). Maximum seats per slot in case of Class Booking Calendar.
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 This is only to set the standard availability. For custom availability, use the availabilities property
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 custom availabilities and open hours will be c
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
View JSON Schema on GitHub

JSON Schema

highlevel-calendar-create-dto-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/highlevel/main/json-schema/highlevel-calendar-create-dto-schema.json",
  "title": "CalendarCreateDTO",
  "x-generated": "2026-09-22",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/highlevel-calendars-openapi.json#/components/schemas/CalendarCreateDTO",
  "type": "object",
  "properties": {
    "isActive": {
      "type": "boolean",
      "description": "Should the created calendar be active or draft",
      "default": true
    },
    "notifications": {
      "description": "🚨 Deprecated! Please use 'Calendar Notifications APIs' instead.",
      "deprecated": true,
      "type": "array",
      "items": {
        "$ref": "#/$defs/CalendarNotification"
      }
    },
    "locationId": {
      "type": "string"
    },
    "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"
      ],
      "default": "RoundRobin_OptimizeForAvailability"
    },
    "name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "widgetSlug": {
      "type": "string"
    },
    "calendarType": {
      "type": "string",
      "enum": [
        "round_robin",
        "event",
        "class_booking",
        "collective",
        "service_booking",
        "personal"
      ]
    },
    "widgetType": {
      "type": "string",
      "description": "Calendar widget type. Choose \"default\" for \"neo\" and \"classic\" for \"classic\" layout.",
      "enum": [
        "default",
        "classic"
      ],
      "default": "classic"
    },
    "eventTitle": {
      "type": "string",
      "default": "{{contact.name}}"
    },
    "eventColor": {
      "type": "string",
      "default": "#039be5"
    },
    "meetingLocation": {
      "type": "string",
      "description": "🚨 Deprecated! Use `locationConfigurations.location` or `teamMembers[].locationConfigurations.location` instead.",
      "deprecated": true,
      "readOnly": true
    },
    "locationConfigurations": {
      "description": "Meeting location configuration for event calendar",
      "type": "array",
      "items": {
        "$ref": "#/$defs/LocationConfiguration"
      }
    },
    "slotDuration": {
      "type": "number",
      "description": "This controls the duration of the meeting",
      "default": 30
    },
    "slotDurationUnit": {
      "type": "string",
      "description": "Unit for slot duration.",
      "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"
    },
    "slotBufferUnit": {
      "type": "string",
      "description": "Unit for slot buffer.",
      "enum": [
        "mins",
        "hours"
      ]
    },
    "preBuffer": {
      "type": "number",
      "description": "Pre-Buffer is additional time that can be added before an appointment, allowing for extra time to get ready"
    },
    "preBufferUnit": {
      "type": "string",
      "description": "Unit for pre-buffer.",
      "enum": [
        "mins",
        "hours"
      ]
    },
    "appoinmentPerSlot": {
      "type": "number",
      "default": 1,
      "description": "Maximum bookings per slot (per user). Maximum seats per slot in case of Class Booking Calendar."
    },
    "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": {
      "description": "This is only to set the standard availability. For custom availability, use the availabilities property",
      "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",
      "default": true
    },
    "shouldSendAlertEmailsToAssignedMember": {
      "type": "boolean"
    },
    "alertEmail": {
      "type": "string"
    },
    "googleInvitationEmails": {
      "type": "boolean",
      "default": false
    },
    "allowReschedule": {
      "type": "boolean",
      "default": true
    },
    "allowCancellation": {
      "type": "boolean",
      "default": true
    },
    "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 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/Availability"
      }
    },
    "guestType": {
      "type": "string",
      "enum": [
        "count_only",
        "collect_detail"
      ]
    },
    "consentLabel": {
      "type": "string"
    },
    "calendarCoverImage": {
      "type": "string"
    },
    "lookBusyConfig": {
      "description": "Look Busy Configuration",
      "allOf": [
        {
          "$ref": "#/$defs/LookBusyConfiguration"
        }
      ]
    }
  },
  "required": [
    "locationId",
    "name"
  ],
  "$defs": {
    "Availability": {
      "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
        }
      },
      "required": [
        "date",
        "hours"
      ]
    },
    "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"
      ]
    }
  }
}

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/highlevel-calendar-create-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.