new
Automations
Cal.com: Workflow Actions & Triggers
Overview
Cal.com is the open-source scheduling stack used by individuals and teams to take bookings on their own terms. The Cal.com integration brings that scheduling layer directly into the Workflow Builder so customer-facing automations can react to booking events and the other way around. Booking lifecycle triggers and four booking actions cover the most common Cal.com use cases without webhook plumbing or third-party glue.
This means a new booking on a discovery call event type becomes a personalized welcome sequence in the same workflow that ran the form, with no manual hand-off and no relay tax.
About the Integration
The integration ships with two halves:
- Triggers (Cal.com → Workflows): Webhook-backed booking lifecycle events — Booking Created, Booking Rescheduled, Booking Cancelled, Meeting Ended, and Out of Office Created / Updated.
- Actions (Workflows → Cal.com): Four actions — Create Booking, Cancel Booking, Reschedule Booking, and Find Booking — covering the most common booking operations.
All triggers and actions are flagged as premium — premium action credits apply at the standard automation rate.
Key Benefits of Cal.com in Workflows
- Full booking lifecycle coverage — created, rescheduled, cancelled, ended and (where supported) recording ready, all from one connected source of truth.
- Webhook-speed triggers — typically fire within 1–3 seconds of the booking event, with no polling lag.
- Programmatic scheduling — Create Booking lets workflows book on behalf of attendees without round-tripping a booking link.
- Mapping reference — pick a real recent booking as the schema reference so every downstream step maps cleanly against typed fields.
- Rich payload — each trigger delivers the full booking object — bookerUrl, title, startTime, endTime, additionalNotes, type, description, eventTypeId, hideCalendarNotes, attendees and organizer — so any field can be used downstream.
How to Set Up Cal.com
Before any Cal.com trigger or action can run, the integration has to be connected. The connection allows your workflows to securely receive Cal.com webhooks and call the Cal.com API on your behalf.
Connect via the Workflow Builder (recommended)
- Open Automation → Workflows and pick (or create) a workflow.
- Add a Cal.com trigger or action — search for Cal.com in the Apps tab.
- Select any Cal.com trigger or action.
- On the action card, click Connect Now.
- Paste your Cal.com API key (or sign in via OAuth, where available); authorize the workspace and event types you want to expose.
- Click Save to complete the connection.
Connect via Settings (alternative path)
- Go to Settings → Integrations.
- Locate Cal.com in the integrations list and click Connect.
- Authenticate and authorize.

List of Triggers
All triggers are Instant — they are powered by Cal.com webhooks and fire within seconds of the underlying event.
- Booking Created - Fires when a new booking is created in Cal.com. Returns the full booking payload.
- Booking Rescheduled - Fires when an existing booking is moved to a new start time. Returns new and previous times.
- Booking Cancelled - Fires when a booking is cancelled by attendee, organizer, or system. Returns cancellation reason if supplied.
- Meeting Ended - Fires automatically at the booking’s scheduled endTime. Re-armed automatically on reschedule.
- OOO Created / Updated - Fires when out of office entry is created / updated

List of Actions
- Create Booking - Creates a new booking on a specific event type. Required: Event Type, Attendee Name, Attendee Email, Start Time.
- Cancel Booking - Cancels an existing booking by ID, with optional cancellation reason.
- Reschedule Booking - Moves an existing booking to a new start time. Cal.com handles invite refresh and notifications.
- Find Booking - Looks up a booking by ID, attendee email, or filter; returns the matching booking(s).

Example: Setting Up a Trigger (Booking Created)
This walkthrough wires up a workflow that fires every time a new booking is made on Cal.com — and uses the booking payload as the source of all downstream actions.
Step 1: Add the trigger
- Open the workflow and click Add Trigger.
- Switch to the Apps tab and search for Cal.com.
- Select Booking Created from the Cal.com trigger list.
Step 2: Configure the trigger
- Workflow Trigger Name — Give the trigger a meaningful label, such as ‘New Discovery Call Booking’.
- Add filters (optional) — Constrain the trigger by event type, host, location, or any other field on the booking payload, so unrelated bookings don’t enroll.
- Webhook Status — The trigger panel shows whether the underlying Cal.com webhook is active. If it goes inactive, reconnect the integration in Cal.com settings.
Step 3: Test the trigger
- Click Find New Records inside the Test Your Trigger panel.
- The system fetches the most recent matching bookings from Cal.com.
- In the Records — Select Mapping Reference dropdown, pick one of the returned records — for example: Active: (2026-05-01 10:36:24) Reference 69f434d0e7358049c8b16ded. This locks the payload schema so every downstream step can map fields cleanly.
- Review the Trigger Data Response panel to confirm the payload contains the fields you plan to use — bookerUrl, title, startTime, endTime, additionalNotes, type, description, eventTypeId, hideCalendarNotes, attendees and organizer.
- Click Save Trigger to finish.

Example: Setting Up an Action (Create Booking)
This walkthrough programmatically books a meeting on a host’s calendar from inside a workflow — for instance, after a high-intent form submission.
Step 1: Add the action
- Inside the workflow, click Add to insert a new step.
- Open the Apps tab and select Cal.com.
- Choose Create Booking from the action list.
Step 2: Connect (first time only)
- If the integration is not yet connected, click Connect Now on the action card.
- Paste your Cal.com API key and authorize the workspace.
Step 3: Configure the action
- Action Name — Give the step a meaningful label such as ‘Book Discovery Call’.
- Event Type (required) — Pick the Cal.com event type to book. The dropdown lists every event type the integration is authorized to access.
- Attendee Name (required) — Use inline workflow variables, e.g. {{contact.full_name}}.
- Attendee Email (required) — Use inline workflow variables, e.g. {{contact.email}}.
- Attendee Timezone — IANA format, e.g. America/New_York or Europe/London. Defaults to the sub-account timezone if not provided.
- Start Time (required) — Use the suggested format (e.g. 12-21-2026 08:30 AM) or ISO-8601. The interpreted timezone is the Attendee Timezone (or sub-account default if unset).
Step 4: Save and use the output
- Click Save action. The new booking’s ID and metadata are exposed as workflow output variables. Chain a Send Email or Send SMS step to confirm the booking to the attendee, or use the booking ID later in a Cancel Booking or Reschedule Booking step if downstream conditions change.

How to Test the Trigger and Action
Always test before publishing. Testing locks the payload schema and gives downstream steps a real record to map against.
Test the trigger
- Inside the trigger panel, click Find New Records.
- Select a recent booking from the dropdown to use as the mapping reference.
- Confirm the Trigger Data Response shows the fields you plan to use downstream.
- Confirm the Webhook Status indicator reads ‘active’.
Test the action
- Inside the action panel, click Test Action.
- The action runs against the live Cal.com workspace using sample values.
- Verify the booking appears in Cal.com (and on the host’s calendar) at the expected time and timezone.
- If the result is not right, re-check the Start Time format and the Attendee Timezone, then test again. Once happy, click Save action, then run a full Test Workflow before publishing.
Common Use Cases
Use Case 1: New Booking → CRM Contact + Welcome Sequence
Goal: Turn every new booking into a fully-onboarded contact with the right context attached.
Workflow Setup:
- Trigger: Booking Created
- Action: Create/Update Contact (use attendee email as the merge key)
- Action: Tag the contact with the booking’s event type
- Action: Send Welcome Email with prep materials sized to the meeting type
- Action: Add the contact to a follow-up campaign that ends 24 hours before the meeting
Example: A prospect books a 30-minute discovery call. The workflow creates a contact, tags them as ‘discovery’, sends a personalized prep email, and ensures a reminder fires the day before the call.
Use Case 2: No-Show Recovery
Goal: Auto-recover no-shows without requiring a CSM to track them down.
Workflow Setup:
- Trigger: Meeting Ended
- Action: Find Booking (refresh state to capture no-show flag)
- Conditional: only proceed if the attendee was a no-show
- Action: Send a personalized rescheduling link with one-click rebook
- Action: Tag the contact for follow-up if no rebook within 48 hours
Example: Whenever a meeting ends, the workflow checks the booking state. If the attendee was a no-show, they get a softening message with a one-click rebook link — instead of falling through the cracks.
Use Case 3: Cancellation Retention
Goal: Treat a cancellation as the start of a save flow, not a dead end.
Workflow Setup:
Trigger: Booking Cancelled
- Conditional: branch on cancellation reason (schedule conflict vs. lost interest)
- Action: Send retention message with rebook link (for schedule conflict)
- Action: Hand off to CSM with full context (for lost interest)
Example: A prospect cancels their demo because of a calendar conflict. The workflow sends a friendly reschedule message with two pre-filled time options — and tags the contact for CSM follow-up if there’s no rebook within a week.
Use Case 4: Programmatic Scheduling from a Form
Goal: Eliminate the email-back-with-a-booking-link round-trip for high-intent leads.
Workflow Setup:
- Trigger: Form Submission (with preferred time captured)
- Action: Create Booking on the assigned host’s event type
- Action: Send confirmation message
Example: A lead requests a same-day call via a high-intent form. The workflow books the meeting on the assigned AE’s calendar at the requested slot and confirms it instantly — no manual scheduling, no missed lead.
Use Case 5: Recording Distribution
Goal: Get Cal Video recordings to the right place automatically.
Workflow Setup:
Trigger: Recording Ready (where supported)
- Action: AI summarize the recording into a customer-friendly note
- Action: Send the recording URL and the summary to the attendee
- Action: Log a CRM activity with the recording link attached
Example: Right after a recording finishes processing, the attendee receives a thank-you email with the recording link and an AI-generated recap — and the CRM activity log captures the same context for the rep.
Best Practices
- Always supply Attendee Timezone explicitly when booking on behalf of leads from different regions — relying on the sub-account default is fine for single-region operators only.
- Use the suggested Start Time format (e.g. 12-21-2026 08:30 AM) or ISO-8601 strings. Ambiguous formats can drift the booked time by hours.
- Pair Find Booking with Cancel Booking or Reschedule Booking — confirm the booking exists and is in the expected state before mutating it.
- Use Meeting Ended (not Booking Created) as the entry point for post-meeting follow-up flows — Cal.com schedules it automatically and re-arms it on reschedule.
- Watch the Webhook Status indicator on the trigger panel — if it goes inactive, the underlying webhook needs to be reconnected in Cal.com settings.
- Test the trigger first to lock the mapping reference, then build downstream actions against the captured sample payload. The Records — Select Mapping Reference field is the foundation of clean field mapping.
Frequently Asked Questions
Q: What is Cal.com?
Cal.com is the open-source scheduling stack used by individuals and teams to take bookings on their own terms. It supports cloud-hosted and self-hosted deployments and exposes a rich webhook surface for automation.
Q: Are Cal.com actions premium workflow actions?
Yes. All four actions are flagged as premium and consume premium action credits at the standard automation rate.
Q: How fast do triggers fire?
Cal.com sends webhooks typically within 1–3 seconds of the booking event. Workflows enroll as soon as the webhook arrives.
Q: What does the trigger payload include?
Each booking event delivers the full booking object — bookerUrl, title, startTime, endTime, additionalNotes, type, description, eventTypeId, hideCalendarNotes, attendees and organizer. Use Find New Records and Records — Select Mapping Reference to lock the schema.
Q: What does the Webhook Status indicator mean?
It reflects the live status of the underlying Cal.com webhook. ‘Active’ means events are flowing; if it goes inactive, the webhook needs reconnection in your Cal.com settings.
Q: How do I supply a timezone in Create Booking?
The Attendee Timezone field accepts IANA format strings such as America/New_York or Europe/London. If left empty, Cal.com falls back to the sub-account timezone.
Q: What format should I use for Start Time?
A standard date-time value. The suggested format is ‘12-21-2026 08:30 AM’; ISO-8601 strings (e.g. 2026-12-21T08:30:00) are also accepted. The interpreted timezone is the Attendee Timezone (or sub-account default if unset).
Q: Does Cancel Booking notify the attendee?
Yes. Cal.com sends its standard cancellation email, including the cancellation reason if supplied.
Q: Will Reschedule Booking re-issue calendar invites?
Yes. Cal.com cancels the original calendar event and sends an updated invite for the new time. Confirmation emails fire automatically.
Q: What happens to Meeting Ended when a booking is rescheduled?
Cal.com cancels the pending Meeting Ended webhook for the original time and re-schedules it for the new time. The trigger fires once, at the booking’s actual end.
Q: Will the workflow fire twice if a booking is rescheduled?
No. Booking Rescheduled is its own trigger; Booking Created does not re-fire on reschedule. Use the right trigger for the lifecycle event you care about.
Q: Does the integration work on self-hosted Cal.com?
Self-hosted Cal.com supports the same webhook surface, so triggers work the same way once the webhook URL is configured. Some self-hosted setups have known issues with Meeting Started / Meeting Ended — verify with a real test booking before production use.
Q: Can I use workflow variables in action fields?
Yes. Inline variables work in Attendee Name, Attendee Email, Start Time and any other field exposed by the action.
Q: What if the booking I am trying to cancel no longer exists?
Cancel Booking surfaces the error to the workflow execution log, and the workflow continues based on its branching. Use Find Booking as a guard step if downstream logic depends on the cancellation succeeding.
Q: Are these actions production-ready?
All triggers and actions are released as Beta. They are safe to use in live workflows; expect incremental UX changes — additional filters, additional fields — as the integration moves out of Beta.