Cal.com integration | Zervanor
← All connectors

Cal.com

Also an agent tool
productivity

Cal.com scheduling platform (API v2, api.cal.com/v2): manage bookings, event types, availability slots, schedules, attendees, teams and memberships, organization users, webhooks, connected/destination calendars, conferencing, and your profile. Bearer API-key auth with a dated cal-api-version header. Change notifications use native HMAC-SHA256 signed webhooks (booking created/rescheduled/cancelled, meeting ended, etc.) with a bookings-list polling fallback.

56 actions · 11 triggers

The Cal.com integration lets you connect Cal.com to your automations with 56 actions and 11 triggers — and every action is also a tool an AI agent can call. Examples: Get My Profile, Update My Profile, List Bookings, Get Booking, Create Booking. No blank-canvas wiring — connect it and use it in your workflows.

Every action below is also a tool an AI agent can call — the same pack powers your workflows and your agents.

Triggers 11

Events in Cal.com that can start a workflow.

webhook

Booking Created

Fires when a new booking is created (Cal.com webhook trigger BOOKING_CREATED).

webhook

Booking Rescheduled

Fires when a booking is rescheduled (Cal.com webhook trigger BOOKING_RESCHEDULED).

webhook

Booking Cancelled

Fires when a booking is cancelled (Cal.com webhook trigger BOOKING_CANCELLED).

webhook

Booking Requested

Fires when a booking that requires confirmation is requested (Cal.com webhook trigger BOOKING_REQUESTED).

webhook

Booking Rejected

Fires when a booking request is rejected (Cal.com webhook trigger BOOKING_REJECTED).

webhook

Booking Payment Initiated

Fires when a booking payment is initiated (Cal.com webhook trigger BOOKING_PAYMENT_INITIATED).

webhook

Booking No-Show Updated

Fires when a booking's no-show status is updated (Cal.com webhook trigger BOOKING_NO_SHOW_UPDATED).

webhook

Meeting Started

Fires when a booking's meeting starts (Cal.com webhook trigger MEETING_STARTED).

webhook

Meeting Ended

Fires when a booking's meeting ends (Cal.com webhook trigger MEETING_ENDED).

webhook

Recording Ready

Fires when a meeting recording is ready (Cal.com webhook trigger RECORDING_READY).

polling

New or updated Cal.com bookings (polled)

Polls GET /bookings with afterUpdatedAt as the watermark and sortUpdatedAt=asc. Dedupe by booking uid; advance by updatedAt.

Actions 56

What Zervanor can do in Cal.com.

Bookings11

GET

List Bookings

List bookings (GET /bookings). Supports filtering by status and time window and is the polling source for new/updated bookings via afterUpdatedAt + sortUpdatedAt.

GET

Get Booking

Get a single booking by uid (GET /bookings/{bookingUid}).

POST

Create Booking

Create a booking (POST /bookings). Provide start, eventTypeId (or eventTypeSlug + username/team), attendee, and optional attendee/booking fields.

POST

Reschedule Booking

Reschedule a booking to a new start time (POST /bookings/{bookingUid}/reschedule).

POST

Cancel Booking

Cancel a booking (POST /bookings/{bookingUid}/cancel).

POST

Confirm Booking

Confirm a pending (requires-confirmation) booking (POST /bookings/{bookingUid}/confirm).

POST

Decline Booking

Decline a pending (requires-confirmation) booking (POST /bookings/{bookingUid}/decline).

POST

Mark Booking Absent

Mark a booking's host or attendee(s) as no-show (POST /bookings/{bookingUid}/mark-absent).

GET

Get Booking Recordings

Get the recordings of a booking's meeting (GET /bookings/{bookingUid}/recordings).

GET

Get Booking Transcripts

Get the download links for a booking's meeting transcripts (GET /bookings/{bookingUid}/transcripts).

GET

Get Booking References

Get a booking's external references (calendar/video integration references) (GET /bookings/{bookingUid}/references).

Teams10

GET

List Teams

List the teams the authenticated user belongs to (GET /teams).

GET

Get Team

Get a team by id (GET /teams/{teamId}).

POST

Create Team

Create a team (POST /teams).

PATCH

Update Team

Update a team (PATCH /teams/{teamId}).

DELETE

Delete Team

Delete a team (DELETE /teams/{teamId}).

GET

List Team Memberships

List a team's memberships (GET /teams/{teamId}/memberships).

GET

Get Team Membership

Get a single team membership (GET /teams/{teamId}/memberships/{membershipId}).

POST

Create Team Membership

Add a member to a team (POST /teams/{teamId}/memberships).

PATCH

Update Team Membership

Update a team membership's role or acceptance (PATCH /teams/{teamId}/memberships/{membershipId}).

DELETE

Delete Team Membership

Remove a member from a team (DELETE /teams/{teamId}/memberships/{membershipId}).

Event Types7

GET

List Event Types

List event types (GET /event-types). Filter by username, eventSlug, or usernames for team lookups.

GET

Get Event Type

Get a single event type by id (GET /event-types/{eventTypeId}).

POST

Create Event Type

Create an event type (POST /event-types).

PATCH

Update Event Type

Update an event type (PATCH /event-types/{eventTypeId}).

DELETE

Delete Event Type

Delete an event type (DELETE /event-types/{eventTypeId}).

GET

List Event Type Webhooks

List webhooks scoped to an event type (GET /event-types/{eventTypeId}/webhooks).

POST

Create Event Type Webhook

Create a webhook scoped to an event type (POST /event-types/{eventTypeId}/webhooks).

Schedules6

GET

List Schedules

List the authenticated user's availability schedules (GET /schedules).

GET

Get Schedule

Get a single availability schedule by id (GET /schedules/{scheduleId}).

POST

Create Schedule

Create an availability schedule (POST /schedules).

PATCH

Update Schedule

Update an availability schedule (PATCH /schedules/{scheduleId}).

DELETE

Delete Schedule

Delete an availability schedule (DELETE /schedules/{scheduleId}).

GET

Get Default Schedule

Get the authenticated user's default availability schedule (GET /schedules/default).

Organizations5

GET

List Organization Users

List an organization's users (GET /organizations/{orgId}/users). Requires an organization-scoped API key.

GET

Get Organization User

Get a single organization user (GET /organizations/{orgId}/users/{userId}).

POST

Create Organization User

Create (invite) a user in an organization (POST /organizations/{orgId}/users).

PATCH

Update Organization User

Update an organization user (PATCH /organizations/{orgId}/users/{userId}).

DELETE

Delete Organization User

Delete a user from an organization (DELETE /organizations/{orgId}/users/{userId}).

Webhooks5

GET

List Webhooks

List the authenticated user's webhooks (GET /webhooks).

GET

Get Webhook

Get a single webhook by id (GET /webhooks/{webhookId}).

POST

Create Webhook

Create a user-scoped webhook (POST /webhooks). Set a secret to sign deliveries; store it as the webhook_secret credential to verify incoming payloads.

PATCH

Update Webhook

Update a webhook (PATCH /webhooks/{webhookId}).

DELETE

Delete Webhook

Delete a webhook (DELETE /webhooks/{webhookId}).

Slots4

GET

Get Available Slots

Get available booking slots for an event type over a date range (GET /slots). Provide eventTypeId (or eventTypeSlug + username) plus start and end.

POST

Reserve Slot

Temporarily reserve a slot so it cannot be double-booked while a booking is completed (POST /slots/reservations).

GET

Get Reserved Slot

Get a reserved slot by its reservation uid (GET /slots/reservations/{reservationUid}).

DELETE

Delete Reserved Slot

Release a reserved slot (DELETE /slots/reservations/{reservationUid}).

Calendars2

GET

List Connected Calendars

List the authenticated user's connected calendars grouped by integration (GET /calendars).

GET

Get Calendar Busy Times

Get busy time blocks across the user's connected calendars for a date range (GET /calendars/busy-times).

Conferencing2

GET

List Conferencing Apps

List the authenticated user's connected conferencing apps (GET /conferencing).

POST

Set Default Conferencing App

Set the default conferencing app for new bookings (POST /conferencing/{app}/default).

Destination Calendars2

GET

Get Destination Calendars

Get the calendars events are written to for the authenticated user (GET /destination-calendars).

PUT

Update Destination Calendar

Set the destination calendar events are written to (PUT /destination-calendars).

Me2

GET

Get My Profile

Get the authenticated user's profile (GET /me). Identity + connectivity probe.

PATCH

Update My Profile

Update the authenticated user's profile (PATCH /me).

Automations using Cal.com

Build your own automation with Cal.com in the visual builder.

Frequently asked questions

What can I automate with Cal.com?

56 actions are available — for example: Get My Profile, Update My Profile, List Bookings, Get Booking, Create Booking, and more.

Which Cal.com events can start a workflow?

11 triggers — for example: Booking Created, Booking Rescheduled, Booking Cancelled, Booking Requested.

Can Cal.com be used as an AI agent tool?

Yes. Every Cal.com action automatically becomes a tool an AI agent can call — the same pack powers both your workflows and your agents.

How is the Cal.com integration modelled?

Cal.com is modelled as a versioned connector pack, and the steps that need reasoning fall to first-party agents hosted in the same runtime as the workflows.