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.

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.

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.

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.

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