To use the Calendars API, obtain your client credentials from the GHL developer console and include the required authorization header in each request. The calendars.write scope is needed for creating or updating calendars.
In Zapier, authorize the connection to Calendars API by selecting the Calendars API connection and granting access. Ensure the required scopes are approved for your automation goals.
Endpoints included in this integration: – POST /calendars/ – PUT /calendars/:calendarId – DELETE /calendars/:calendarId – calendars.readonly – GET /calendars/ – GET /calendars/:calendarId – GET /calendars/:calendarId/free-slots – calendars/groups.readonly – GET /calendars/groups – calendars/groups.write – POST /calendars/groups – POST /calendars/groups/validate-slug – DELETE /calendars/groups/:groupId – PUT /calendars/groups/:groupId – PUT /calendars/groups/:groupId/status – calendars/resources.readonly – GET /calendars/resources/:resourceType
Trigger: When a new calendar is created in Calendars API, start a Zapier workflow.
Action: Use POST /calendars/ to create calendars, or PUT /calendars/:calendarId to update existing calendars.
Method/Path: POST /calendars/
Key fields: name, timeZone, color, externalId, and defaultCapacity.
Trigger: Availability slots change; you can fetch with GET /calendars/:calendarId/free-slots.
Actions: Retrieve free slots to schedule events; update events accordingly.
Method/Path: GET /calendars/:calendarId/free-slots
Key fields: calendarId, startDate, endDate.
Trigger: Group metadata updated or a new group created.
Actions: Create, update, or delete groups using POST /calendars/groups, PUT /calendars/groups/:groupId, DELETE /calendars/groups/:groupId.
Method/Path: See endpoints for groups: POST /calendars/groups, PUT /calendars/groups/:groupId, DELETE /calendars/groups/:groupId
Key fields: groupId, name, slug, status.
Automate calendar workflows without coding by linking endpoints to Zapier triggers and actions.
Rely on Zapier’s UI to map fields and test connections across calendars, groups, and resources.
Scale scheduling operations with reusable workflows and built-in error handling.
This glossary covers calendars, groups, and resources, plus common terms used when integrating the GHL Calendars API with Zapier App Connector.
A calendar resource that stores events, availability, and group association. Use it to schedule and retrieve slots via endpoints like POST /calendars/ and GET /calendars/:calendarId/free-slots.
A category of data exposed by the API (calendars, groups, resources) that you can read or write depending on your permissions.
A collection of calendars organized for permissions and reporting; groups can be created, updated, and assigned to calendars via group endpoints.
A specific API route (method + path) used to perform an action against a resource, such as POST /calendars or GET /calendars/:calendarId/free-slots.
When a new team is added in your workspace, automatically create a calendar in Calendars API via POST /calendars/ and assign it to the team group in Zapier.
Fetch free slots with GET /calendars/:calendarId/free-slots and automatically schedule events in your workflow.
Use calendars/groups endpoints to organize calendars by project, assigning permissions and visibility automatically.
Identify required endpoints and scopes in Calendars API (e.g., calendars.write) and authorize the Zapier App Connector to access them.
Complete OAuth or API key flow and run a test request to POST /calendars/ to verify write access.
Create a Zap that uses calendar creation or slot retrieval to automate scheduling.
Yes. Some endpoints are read-only (e.g., calendars.readonly), but to create or modify calendars, you need the calendars.write scope. Plan your app permissions to include only what you need, and grant tokens with the minimum required scope. For testing, start with calendars.readonly to explore data, then request write access for full automation.
Yes. The API provides read endpoints such as GET /calendars/ and GET /calendars/:calendarId. Use these to fetch calendars, groups, and resources without performing updates. If you need to see slot availability, you can use GET /calendars/:calendarId/free-slots in read mode when supported by your credentials.
Use GET /calendars/:calendarId/free-slots with a specified date range to retrieve available times. Then map those slots to events or reminders in your workflow. If you need to block times, write operations via POST /calendars/ or PUT /calendars/:calendarId will be required.
A group is a collection of calendars used to organize access and permissions. You can create, update, or delete groups with POST, PUT, or DELETE on /calendars/groups and assign calendars to groups to manage permissions at scale.
If a request fails, check authentication, scopes, and endpoint correctness. Review error messages for invalid IDs, missing headers, or quota limits. Retry with exponential backoff and verify that your app has the required access to the target resource.
Yes. The API enforces rate limits. If you hit a limit, implement retries with backoff in your Zapier workflows and consider batching operations where possible. Monitoring is recommended to avoid interruptions in automation.
Test by creating a test calendar, retrieving available slots, and validating group permissions in a sandbox or development environment. Use Zapier’s test mode to simulate triggers and actions without affecting live data.
Due to high volume, we will be upgrading our server soon!
Complete Operations Catalog - 126 Actions & Triggers