Authenticate Calendars API using OAuth 2.0 with the calendars.write scope. You’ll grant access to your calendar data and specify which actions the Zapier App Connector may perform.
In the Zapier App Connector, configure OAuth 2.0 client credentials, set the redirect URI, and select the calendars.write scope to establish a secure link to Calendars API.
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 your system, push it to Calendars API via POST /calendars/.
Actions: create calendar, update calendar details, and validate slugs using POST /calendars; PUT /calendars/:calendarId; POST /calendars/groups/validate-slug.
POST /calendars/
name, slug, timeZone, color, groupId, resources
Trigger: retrieve calendar details with GET /calendars/:calendarId or fetch available time slots with GET /calendars/:calendarId/free-slots.
Actions: get calendar details, fetch free slots, update group assignments as needed.
GET /calendars/:calendarId; GET /calendars/:calendarId/free-slots
calendarId, timeSlots, status
Trigger: create or modify calendar groups via POST /calendars/groups and PUT /calendars/groups/:groupId.
Actions: manage groups, assign calendars to groups, validate group slugs with POST /calendars/groups and PUT /calendars/groups/:groupId/status.
POST /calendars/groups; PUT /calendars/groups/:groupId; PUT /calendars/groups/:groupId/status; DELETE /calendars/groups/:groupId
groupId, slug, name, status
No-code automation: connect endpoints visually in the Zapier interface without writing code.
Rapid onboarding: reuse templates to set up calendar workflows in minutes.
Scalable architecture: manage calendars, groups, and resources across endpoints as your needs grow.
This glossary explains essential terms used when integrating Calendars API with the Zapier App Connector.
A calendar is a collection of scheduled events and availability used to organize time-based data.
An endpoint is a specific URL path on the API that performs a defined action (for example, GET /calendars/:calendarId).
OAuth 2.0 is the standard protocol used to authorize apps to access GHL data securely.
A slug is the URL-friendly string used to identify a calendar group or resource.
Create a new calendar in GHL when a form is submitted, using POST /calendars/ and map form fields to name, slug, and timeZone.
Fetch free slots with GET /calendars/:calendarId/free-slots and push availability to external booking tools.
Batch-create or update calendars in groups using POST /calendars/groups and PUT /calendars/groups/:groupId.
Obtain OAuth 2.0 tokens for Calendars API and configure OAuth in the Zapier App Connector with scope calendars.write.
Select relevant endpoints (for example POST /calendars/ and GET /calendars/:calendarId) and map required fields such as name, slug, timeZone, and resources.
Run tests in Zapier, verify data flows, and enable automation to start syncing calendars.
Calendars API uses OAuth 2.0 with the calendars.write scope to control what your Zapier workflows can do. This scope allows creating, updating, and managing calendars. Ensure your app requests only the permissions you need. After authorization, you can call endpoints to manage calendars and groups. If you’re new to OAuth, start by registering your app in the GHL developer console, then configure the redirect URL in the Zapier App Connector. Test permissions in a sandbox or staging environment before moving to production.
To authenticate, you’ll implement OAuth 2.0 flow in your app and obtain access and refresh tokens from GHL. Use the tokens in the Zapier app to call endpoints like POST /calendars/ and GET /calendars/:calendarId. Refresh tokens before they expire. Remember to handle token errors gracefully and notify users when re-authentication is required.
Endpoints range from creating calendars to managing groups and resources. Start with POST /calendars/ to create calendars and GET /calendars/ to list them. Use PUT /calendars/:calendarId to update, and DELETE /calendars/:calendarId to remove calendars. For groups, use POST /calendars/groups, PUT /calendars/groups/:groupId, and PUT /calendars/groups/:groupId/status to manage lifecycle and access control.
Yes. You can validate calendar slugs using POST /calendars/groups/validate-slug before creating groups. This helps avoid conflicts and ensure friendly URLs for groups and calendars. Validation results can be used to stop incomplete payloads early in your Zapier workflow.
Use a sandbox or staging environment provided by GHL to test API calls. Clone test calendars and groups, run Zapier zaps against the sandbox endpoints, and verify responses before deploying to production. Monitor API quotas and set up error handling so failures don’t disrupt live data.
Common issues include invalid tokens, insufficient scopes, or incorrect field mappings. Check that your OAuth scope matches calendars.write, verify that the token hasn’t expired, and review endpoint permissions (readonly vs write). Consult the API reference and use the endpoint test tool in the Zapier app to verify requests and responses.
The endpoint list is available in the Calendars API documentation and in the Endpoints section of this page. You can also inspect sample payloads and field mappings to guide your setup.
Due to high volume, we will be upgrading our server soon!
Complete Operations Catalog - 126 Actions & Triggers