Skip to content

Cal.com: Workflow Actions & Triggers

| --- | --- | | 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 |!(https://assets.patientcopilot.ai/5999035ce89264cd.png) ## List of Actions | Action | Purpose | | --- | --- | | 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). | ##!(https://assets.patientcopilot.ai/48ef124ce65ffb81.png) ## 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. ##!(https://assets.patientcopilot.ai/2483a3808d611d97.png)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. ##!(https://assets.patientcopilot.ai/e6d7bf26cf333503.png) ## 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.