GoHighLevel API reference
Calendars API
The GoHighLevel Calendars API has 17 documented endpoints here, covering GET, POST and PUT requests. Calendars cover availability, booking, and appointments. If you are looking for open bookable times, HighLevel calls them free slots rather than availability — that vocabulary gap is the most common reason a search for the right endpoint comes up empty.
Every page below carries the full parameter list, the response shape, the OAuth scope, and a curl you can paste into a terminal. Base URL: https://services.leadconnectorhq.com
All calendars endpoints
| Endpoint | Method | Path | Scope |
|---|---|---|---|
| Create Calendar | POST | /calendars/ | calendars.write |
| Create Calendar Resource | POST | /calendars/resources/:resourceType | calendars/resources.write |
| Create Event Notification | POST | /calendars/:calendarId/notifications | calendars/events.write |
| Create Schedule | POST | /calendars/schedules | calendars.write |
| Edit Block Slot | PUT | /calendars/events/block-slots/:eventId | calendars/events.write |
| Fetch Calendar Resources | GET | /calendars/resources/:resourceType | calendars/resources.readonly |
| Find Event Notification | GET | /calendars/:calendarId/notifications/:notificationId | calendars/events.readonly |
| Get All Schedules | GET | /calendars/schedules/search | calendars.readonly |
| Get Calendar Resource | GET | /calendars/resources/:resourceType/:id | calendars/resources.readonly |
| Get Calendars | GET | /calendars/ | calendars.readonly |
| Get Event Notification | GET | /calendars/:calendarId/notifications | calendars/events.readonly |
| Get Groups | GET | /calendars/groups | calendars/groups.readonly |
| Get Slots | GET | /calendars/:calendarId/free-slots | calendars.readonly |
| Update Calendar Resource | PUT | /calendars/resources/:resourceType/:id | calendars/resources.write |
| Update Event Notification | PUT | /calendars/:calendarId/notifications/:notificationId | calendars/events.write |
| Update Schedule | PUT | /calendars/schedules/:id | calendars.write |
| Validate Groups Slug | POST | /calendars/groups/validate-slug | calendars/groups.write |
Skip the schema lookup
Hylo hands these schemas to your AI agent over MCP, so it picks the right calendars endpoint and fills the body correctly the first time — then executes the call against your own sub-account when you approve it.
Elsewhere in the reference