Cal.com: Workflow Actions & Triggers
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.

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

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).

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.

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.

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.
Cal.com: Workflow Actions & Triggers
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.

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

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).

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.

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.

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.
Pricing Update: SMS & Voice Costs (Effective May 13, 2026)
We want to keep you informed about upcoming changes that may impact your messaging and calling costs inside HighLevel.
What’s changing?
Due to recent pricing updates from our underlying carrier partner, rates for certain SMS and Voice routes will increase starting May 13, 2026.
Messaging (Outbound SMS)
Costa Rica: $0.0874 → $0.1017
Grenada: $0.2462 → $0.2913
Kenya: $0.2336 → $0.2923
Namibia: $0.1041 → $0.1167
Zimbabwe: $0.2481 → $0.3177
Voice – Incoming Minutes
Austria (Local & Mobile): $0.0100 → $0.0107
Belgium (Mobile): $0.0100 → $0.0113
Chile (Local): $0.0100 → $0.0107
Croatia (Local): $0.0100 → $0.0107
Czech Republic (Local): $0.0100 → $0.0107
Denmark (Mobile): $0.0100 → $0.0107
Finland (Mobile): $0.0100 → $0.0107
Israel (Local): $0.0100 → $0.0107
Luxembourg (Local): $0.0100 → $0.0107
Malaysia (Local): $0.0288 → $0.0318
Poland (Mobile): $0.0100 → $0.0107
Portugal (Mobile): $0.0100 → $0.0107
South Africa (Local & Mobile): $0.0100 → $0.0107
Sweden (Local): $0.0100 → $0.0107
United Kingdom (Toll-Free Local & Mobile): $0.0664 → $0.0798
Voice – Outbound Minutes
Afghanistan (Mobile): $0.4150 → $0.4287
American Samoa: $0.4090 → $0.4576
Austria (Mobile): $0.2640 → $0.2730
Bermuda: $0.0529 → $0.0588
Chile: $0.0428 → $0.0475
Chile (Mobile): $0.0670 → $0.0746
Cyprus (Mobile): $0.1500 → $0.1675
Denmark: $0.0219 → $0.0240
Denmark (Mobile): $0.0508 → $0.0564
Egypt (Mobile): $0.1870 → $0.2090
Estonia (Mobile): $0.4783 → $0.5709
Estonia (Other): $0.4650 → $0.4944
Finland (Mobile): $0.4950 → $0.5172
Finland (Other – EEA): $0.1168 → $0.3037
Germany: $0.0210 → $0.0283
Greece (Mobile – EEA): $0.0696 → $0.0746
Guam: $0.0530 → $0.0589
Haiti (Mobile): $0.7858 → $0.8796
Hong Kong (Mobile): $0.0492 → $0.0546
India: $0.0497 → $0.0699
India (Mobile): $0.0405 → $0.0496
Indonesia: $0.0966 → $0.1077
Ireland: $0.0168 → $0.0483
Israel (From IL): $0.0267 → $0.0294
Luxembourg: $0.2530 → $0.2829
Moldova: $0.4420 → $0.4946
Morocco: $0.4743 → $0.5307
Namibia (Mobile): $0.1650 → $0.1843
Nicaragua (Mobile): $0.4200 → $0.4767
Peru: $0.0552 → $0.1651
Slovakia (Mobile): $0.1038 → $0.1158
South Africa (Mobile – Twilio ZA): $0.0450 → $0.0499
Spain (Mobile – EEA): $0.0388 → $0.0486
St. Lucia (Mobile): $0.5040 → $0.7158
Sweden (Mobile): $0.0642 → $0.0714
Switzerland: $0.0374 → $0.0419
Switzerland (Mobile): $0.2361 → $0.2516
United Kingdom (Personal): $0.4725 → $0.5577
US Virgin Islands: $0.0414 → $0.0459
Why It’s Happening
These updates reflect changes from downstream carrier partners and telecom infrastructure providers to support:
- Continued service reliability
- Stable global deliverability
- Ongoing infrastructure improvements
Pricing Update: SMS & Voice Costs (Effective May 13, 2026)
We want to keep you informed about upcoming changes that may impact your messaging and calling costs inside HighLevel.
What’s changing?
Due to recent pricing updates from our underlying carrier partner, rates for certain SMS and Voice routes will increase starting May 13, 2026.
Messaging (Outbound SMS)
Costa Rica: $0.0874 → $0.1017
Grenada: $0.2462 → $0.2913
Kenya: $0.2336 → $0.2923
Namibia: $0.1041 → $0.1167
Zimbabwe: $0.2481 → $0.3177
Voice – Incoming Minutes
Austria (Local & Mobile): $0.0100 → $0.0107
Belgium (Mobile): $0.0100 → $0.0113
Chile (Local): $0.0100 → $0.0107
Croatia (Local): $0.0100 → $0.0107
Czech Republic (Local): $0.0100 → $0.0107
Denmark (Mobile): $0.0100 → $0.0107
Finland (Mobile): $0.0100 → $0.0107
Israel (Local): $0.0100 → $0.0107
Luxembourg (Local): $0.0100 → $0.0107
Malaysia (Local): $0.0288 → $0.0318
Poland (Mobile): $0.0100 → $0.0107
Portugal (Mobile): $0.0100 → $0.0107
South Africa (Local & Mobile): $0.0100 → $0.0107
Sweden (Local): $0.0100 → $0.0107
United Kingdom (Toll-Free Local & Mobile): $0.0664 → $0.0798
Voice – Outbound Minutes
Afghanistan (Mobile): $0.4150 → $0.4287
American Samoa: $0.4090 → $0.4576
Austria (Mobile): $0.2640 → $0.2730
Bermuda: $0.0529 → $0.0588
Chile: $0.0428 → $0.0475
Chile (Mobile): $0.0670 → $0.0746
Cyprus (Mobile): $0.1500 → $0.1675
Denmark: $0.0219 → $0.0240
Denmark (Mobile): $0.0508 → $0.0564
Egypt (Mobile): $0.1870 → $0.2090
Estonia (Mobile): $0.4783 → $0.5709
Estonia (Other): $0.4650 → $0.4944
Finland (Mobile): $0.4950 → $0.5172
Finland (Other – EEA): $0.1168 → $0.3037
Germany: $0.0210 → $0.0283
Greece (Mobile – EEA): $0.0696 → $0.0746
Guam: $0.0530 → $0.0589
Haiti (Mobile): $0.7858 → $0.8796
Hong Kong (Mobile): $0.0492 → $0.0546
India: $0.0497 → $0.0699
India (Mobile): $0.0405 → $0.0496
Indonesia: $0.0966 → $0.1077
Ireland: $0.0168 → $0.0483
Israel (From IL): $0.0267 → $0.0294
Luxembourg: $0.2530 → $0.2829
Moldova: $0.4420 → $0.4946
Morocco: $0.4743 → $0.5307
Namibia (Mobile): $0.1650 → $0.1843
Nicaragua (Mobile): $0.4200 → $0.4767
Peru: $0.0552 → $0.1651
Slovakia (Mobile): $0.1038 → $0.1158
South Africa (Mobile – Twilio ZA): $0.0450 → $0.0499
Spain (Mobile – EEA): $0.0388 → $0.0486
St. Lucia (Mobile): $0.5040 → $0.7158
Sweden (Mobile): $0.0642 → $0.0714
Switzerland: $0.0374 → $0.0419
Switzerland (Mobile): $0.2361 → $0.2516
United Kingdom (Personal): $0.4725 → $0.5577
US Virgin Islands: $0.0414 → $0.0459
Why It’s Happening
These updates reflect changes from downstream carrier partners and telecom infrastructure providers to support:
- Continued service reliability
- Stable global deliverability
- Ongoing infrastructure improvements
Pricing Update: SMS & Voice Costs (Effective May 13, 2026)
We want to keep you informed about upcoming changes that may impact your messaging and calling costs inside HighLevel.
What’s changing?
Due to recent pricing updates from our underlying carrier partner, rates for certain SMS and Voice routes will increase starting May 13, 2026.
Messaging (Outbound SMS)
Costa Rica: $0.0874 → $0.1017
Grenada: $0.2462 → $0.2913
Kenya: $0.2336 → $0.2923
Namibia: $0.1041 → $0.1167
Zimbabwe: $0.2481 → $0.3177
Voice – Incoming Minutes
Austria (Local & Mobile): $0.0100 → $0.0107
Belgium (Mobile): $0.0100 → $0.0113
Chile (Local): $0.0100 → $0.0107
Croatia (Local): $0.0100 → $0.0107
Czech Republic (Local): $0.0100 → $0.0107
Denmark (Mobile): $0.0100 → $0.0107
Finland (Mobile): $0.0100 → $0.0107
Israel (Local): $0.0100 → $0.0107
Luxembourg (Local): $0.0100 → $0.0107
Malaysia (Local): $0.0288 → $0.0318
Poland (Mobile): $0.0100 → $0.0107
Portugal (Mobile): $0.0100 → $0.0107
South Africa (Local & Mobile): $0.0100 → $0.0107
Sweden (Local): $0.0100 → $0.0107
United Kingdom (Toll-Free Local & Mobile): $0.0664 → $0.0798
Voice – Outbound Minutes
Afghanistan (Mobile): $0.4150 → $0.4287
American Samoa: $0.4090 → $0.4576
Austria (Mobile): $0.2640 → $0.2730
Bermuda: $0.0529 → $0.0588
Chile: $0.0428 → $0.0475
Chile (Mobile): $0.0670 → $0.0746
Cyprus (Mobile): $0.1500 → $0.1675
Denmark: $0.0219 → $0.0240
Denmark (Mobile): $0.0508 → $0.0564
Egypt (Mobile): $0.1870 → $0.2090
Estonia (Mobile): $0.4783 → $0.5709
Estonia (Other): $0.4650 → $0.4944
Finland (Mobile): $0.4950 → $0.5172
Finland (Other – EEA): $0.1168 → $0.3037
Germany: $0.0210 → $0.0283
Greece (Mobile – EEA): $0.0696 → $0.0746
Guam: $0.0530 → $0.0589
Haiti (Mobile): $0.7858 → $0.8796
Hong Kong (Mobile): $0.0492 → $0.0546
India: $0.0497 → $0.0699
India (Mobile): $0.0405 → $0.0496
Indonesia: $0.0966 → $0.1077
Ireland: $0.0168 → $0.0483
Israel (From IL): $0.0267 → $0.0294
Luxembourg: $0.2530 → $0.2829
Moldova: $0.4420 → $0.4946
Morocco: $0.4743 → $0.5307
Namibia (Mobile): $0.1650 → $0.1843
Nicaragua (Mobile): $0.4200 → $0.4767
Peru: $0.0552 → $0.1651
Slovakia (Mobile): $0.1038 → $0.1158
South Africa (Mobile – Twilio ZA): $0.0450 → $0.0499
Spain (Mobile – EEA): $0.0388 → $0.0486
St. Lucia (Mobile): $0.5040 → $0.7158
Sweden (Mobile): $0.0642 → $0.0714
Switzerland: $0.0374 → $0.0419
Switzerland (Mobile): $0.2361 → $0.2516
United Kingdom (Personal): $0.4725 → $0.5577
US Virgin Islands: $0.0414 → $0.0459
Why It’s Happening
These updates reflect changes from downstream carrier partners and telecom infrastructure providers to support:
- Continued service reliability
- Stable global deliverability
- Ongoing infrastructure improvements
