Authenticate requests using your GHL credentials. The Calendars API requires the calendars.write scope for create, update, and delete operations, so make sure your OAuth or API key includes that permission before proceeding.
Zapier App Connector uses OAuth 2.0 to authorize access to GHL’s Calendars API. Create an OAuth client in GHL, provide the redirect URL to Zapier, and verify that the calendars.write scope is granted for full calendar management.
POST /calendars/ — Create a calendar PUT /calendars/:calendarId — Update a calendar DELETE /calendars/:calendarId — Delete a calendar GET /calendars/ — List calendars GET /calendars/:calendarId — Retrieve a calendar GET /calendars/:calendarId/free-slots — Get available slots GET /calendars/groups — List calendar groups POST /calendars/groups — Create a calendar group POST /calendars/groups/validate-slug — Validate a group slug DELETE /calendars/groups/:groupId — Delete a calendar group PUT /calendars/groups/:groupId — Update a calendar group PUT /calendars/groups/:groupId/status — Change group status GET /calendars/resources/:resourceType — Retrieve a calendar resource
Trigger: A new form submission occurs in your source app, starting a Zap that creates a new calendar in Calendars API.
Actions: Use POST /calendars/ to create; map fields like name, timezone, and color. Optional fields include description and groupId.
POST /calendars/
Required: name, timezone; Optional: description, color, groupId
Trigger: Calendar is updated in GHL
Actions: Use PUT /calendars/:calendarId to apply changes; map updated fields accordingly.
PUT /calendars/:calendarId
Required: calendarId; Optional: name, timezone, description, color
Trigger: Calendar is no longer needed and should be removed
Actions: Use DELETE /calendars/:calendarId to remove the calendar.
DELETE /calendars/:calendarId
Required: calendarId
No-code automation: Build end-to-end calendar workflows without writing code.
Real-time synchronization: Keep calendars in sync across apps using Zapier triggers and actions.
Scalable scheduling: Manage multiple calendars and groups with minimal effort.
Key elements and processes you’ll encounter when integrating Calendars API with the Zapier App Connector.
An authorization framework that enables apps to obtain limited access to GHL data without sharing user credentials.
A specific URL path in the API that performs a defined action, such as /calendars or /calendars/:calendarId.
A container for events and appointments used to organize scheduling within GHL.
Create, Read, Update, and Delete operations exposed by the API for resources like calendars and groups.
When a form is submitted, automatically create a new calendar in Calendars API using POST /calendars/ and map key fields to keep calendars organized.
When a calendar is updated via PUT /calendars/:calendarId, push changes to related records in your connected apps through Zapier.
Periodically run cleanup tasks to delete calendars that are no longer needed using DELETE /calendars/:calendarId.
Create the Zapier app connection in GHL and authorize access to calendars with the calendars.write scope.
In Zapier, configure triggers and actions using the endpoints listed above (GET, POST, PUT, DELETE) and map fields appropriately.
Run end-to-end tests to verify authentication, data mapping, and idempotency, then deploy the Zapier connection for production use.
The Calendars API provides endpoints to create, read, update, and delete calendars, groups, and related calendar resources within your GHL account. These endpoints enable programmatic calendar management from external apps like Zapier. You’ll typically use the calendars.write scope for write operations. Use cases include creating calendars from web forms, updating calendar details after a booking change, and organizing calendars into groups for easier access.
Authentication is done via OAuth 2.0 or API keys, depending on how your GHL account is configured. Ensure the calendars.write scope is granted to your OAuth client or API key to perform create, update, and delete operations on calendars. Test tokens in a development environment before going live.
The most useful endpoints for automation include POST /calendars/ to create calendars, PUT /calendars/:calendarId to update, DELETE /calendars/:calendarId to delete, and GET /calendars/ to list calendars. For slot availability, GET /calendars/:calendarId/free-slots is valuable for scheduling flows.
Yes. GET /calendars/:calendarId/free-slots returns available time slots for a given calendar, helping you automate scheduling decisions in your Zapier workflows.
Yes. You can manage calendar groups with endpoints like GET /calendars/groups, POST /calendars/groups, PUT /calendars/groups/:groupId, and DELETE /calendars/groups/:groupId. This allows organizing calendars into reusable groups in your automation flows.
You can retrieve groups, resources, and various related elements. Endpoints like GET /calendars/groups and GET /calendars/resources/:resourceType let you explore available organizational and resource data for more sophisticated automations.
Example payloads and schemas are typically provided in the API documentation and in the Zapier app connector setup screens. If you don’t have them, you can generate payload samples by creating a test calendar, then inspecting the response structure to map fields correctly.
Due to high volume, we will be upgrading our server soon!
Complete Operations Catalog - 126 Actions & Triggers