Cal.com: Workflow Actions & Triggers

May 8, 2026

Overview

<a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com is the open-source scheduling stack used by individuals and teams to take bookings on their own terms. The <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 (<a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com → Workflows): Webhook-backed booking lifecycle events — Booking Created, Booking Rescheduled, Booking Cancelled, Meeting Ended, and Out of Office Created / Updated.
  • Actions (Workflows → <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com

Before any <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com trigger or action can run, the integration has to be connected. The connection allows your workflows to securely receive <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com webhooks and call the <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com API on your behalf.

Connect via the Workflow Builder (recommended)

  • Open Automation → Workflows and pick (or create) a workflow.
  • Add a <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com trigger or action — search for <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com in the Apps tab.
  • Select any <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com trigger or action.
  • On the action card, click Connect Now.
  • Paste your <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com in the integrations list and click Connect.
  • Authenticate and authorize.

image

List of Triggers

All triggers are Instant — they are powered by <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com webhooks and fire within seconds of the underlying event.

  • Booking Created – Fires when a new booking is created in <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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

image

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. <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com handles invite refresh and notifications.
  • Find Booking – Looks up a booking by ID, attendee email, or filter; returns the matching booking(s).

image

Example: Setting Up a Trigger (Booking Created)

This walkthrough wires up a workflow that fires every time a new booking is made on <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com.
  • Select Booking Created from the <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com webhook is active. If it goes inactive, reconnect the integration in <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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.

image

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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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.fullname}}.
  • Attendee Email (required) — Use inline workflow variables, e.g. {{<a href="http://contact.email" rel="ugc nofollow noopener noreferrer" target="blank”>contact.email}}.
  • Attendee Timezone — IANA format, e.g. America/NewYork 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.

image

​

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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com workspace using sample values.
  • Verify the booking appears in <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 — <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com?

<a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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?

<a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com webhook. ‘Active’ means events are flowing; if it goes inactive, the webhook needs reconnection in your <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com settings.

Q: How do I supply a timezone in Create Booking?

The Attendee Timezone field accepts IANA format strings such as America/NewYork or Europe/London. If left empty, <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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. <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>Cal.com sends its standard cancellation email, including the cancellation reason if supplied.

Q: Will Reschedule Booking re-issue calendar invites?

Yes. <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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?

<a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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 <a href="http://Cal.com" rel="ugc nofollow noopener noreferrer" target="blank”>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.