Help Center
Automation & workflowsAdmin only14 min read

Connect Calendly

Link your Calendly account once, and every booking, cancellation, and no-show across your team can start a workflow - a WhatsApp confirmation the moment someone books, a win-back message when they cancel, a nudge when they don’t turn up. Here’s the whole integration: what it needs, how to connect, and how to turn bookings into conversations.
The model

How the integration thinks

The integration is a push connection: when you connect, Exabloom asks Calendly to send it an event the moment something happens on a booking page - there’s no polling and no sync schedule. Three kinds of events come through, and each one maps to its own workflow trigger:

An invitee books a slot
on any booking page in your Calendly organisation
→
Calendly meeting booked
A booking is cancelled
by the invitee or the host
→
Calendly meeting canceled
The host marks a no-show
in Calendly, after the meeting time
→
Calendly marked no-show
Three Calendly moments, three triggers. Everything else - filters, fields, follow-ups - hangs off these.

Two facts shape everything below. First, one Calendly account per workspace - connecting is a workspace-level action, and reconnecting with a different account replaces the existing link rather than adding a second. Second, the connection is organisation-wide on the Calendly side: the event subscription covers every member and every event type in your Calendly organisation, not just the booking pages of the person who clicked Connect. That’s what makes it powerful - and it’s why you’ll usually want the event-type filter you’ll meet later.

The simple path is short: connect, drop a Calendly meeting booked trigger into a workflow, map the booking to a contact, and send a confirmation. If that’s all you need, jump to the cookbook once you’ve connected.

What you need first

Three requirements, and the first one catches the most people:

  • A paid Calendly plan - Standard or above. The integration relies on Calendly webhooks, which Calendly only offers on its paid plans. A free Calendly account gets through the sign-in, then lands on a Plan upgrade required page when Exabloom tries to register for events.
  • A Calendly Owner or Admin. Because the connection listens to your whole Calendly organisation, the person who signs in must be an Owner or Admin of it in Calendly. A regular member’s sign-in succeeds but ends on a Calendly admin access required page. Admin rights on the calendar behind your event types matter too - an account that can only view that calendar won’t work, even if it is an organisation Admin.
  • The Integrations permission in Exabloom. The connection lives in Settings → Integrations, which is gated by the Settings > Integrations permission (“Third-party integrations”) on the Roles page. If you can’t see Integrations in Settings, ask a workspace admin to connect - or to grant you that permission.
Plan lapses end quietly
Connecting during a Calendly trial works, because trials include paid-plan features. But if your Calendly plan later drops back to free, events stop reaching Exabloom - and the card can keep saying Connected, because nothing checks the subscription after the fact. If workflows stopped firing, look at your Calendly plan first. After upgrading, click Disconnect and then Connect again to register for events from scratch.

Connect Calendly

Five short steps, each on its own screen. The sign-in is a popup window that opens over Exabloom and closes itself when it is done.

1

Open Settings, then Integrations

app.exabloom.com/settings/integrations
BMBright MindsOrchard
Inbox
Leads
Calendars
Contacts
Bulk Actions
Win-back
Workflows
Analytics
Forms
1
Settings
Settings
Communication
Social Channels
Quick Replies
Availability
Notifications
Automation & Data
AI Actionables
AI Columns
2
Integrations
Webhooks
API Key
Logout
Integrations

Connect external services to extend Exabloom’s capabilities.

AI Providers
OpenAI
Advertising Platforms
Facebook Ads
Scheduling is the last section - scroll down
① Settings sits at the bottom of the left sidebar. ② Integrations is under Automation & Data. The page is long - Scheduling, where Calendly lives, is the last section.
2

Click Connect on the Calendly card

app.exabloom.com/settings/integrations
BMBright MindsOrchard
Inbox
Leads
Calendars
Contacts
Bulk Actions
Win-back
Workflows
Analytics
Forms
Settings
Settings
Communication
Social Channels
Quick Replies
Availability
Notifications
Automation & Data
AI Actionables
AI Columns
Integrations
Webhooks
API Key
Logout
Scheduling
CalendlyDisconnected

Trigger workflows when an invitee books, cancels, or is marked a no-show.

3Connect
Google Calendar
Zoom
③ Connect is on the Calendly card, under Scheduling. Google Calendar and Zoom sit below it and connect separately.

A popup opens Calendly’s sign-in. While it is open, the Connect button shows a spinner and stays disabled. If your browser blocks the popup, the same steps run in the current tab instead.

3

Sign in to Calendly and approve

Calendly
auth.calendly.com/oauth/authorize?client_id=…&response_type=code&redirect_uri=…&state=…
Calendly
Sign in with your Owner or Admin account
ops@acme.com
Password
4Sign in
then Calendly asks you to approve
Calendly
auth.calendly.com/oauth/authorize?client_id=…&response_type=code&redirect_uri=…&state=…
Calendly
Exabloom is asking to access your Calendly account

Approve it and this window closes by itself.

Cancel5Allow
④ Sign in as a Calendly Owner or Admin. ⑤ Approve the access request. Calendly’s screens are Calendly’s own and change over time - yours may look a little different.
4

Wait for Exabloom to confirm

Connecting to Calendly
app.exabloom.com/calendly/connecting?result=connected

Connecting to Calendly…

Almost there - we’re linking your Calendly account and configuring event notifications.

Connecting to Calendly
app.exabloom.com/calendly/connecting?result=connected
Connected

Connected!

Redirecting you to Exabloom…

the popup closes and the card updates
app.exabloom.com/settings/integrations
BMBright MindsOrchard
Inbox
Leads
Calendars
Contacts
Bulk Actions
Win-back
Workflows
Analytics
Forms
Settings
Settings
Communication
Social Channels
Quick Replies
Availability
Notifications
Automation & Data
AI Actionables
AI Columns
Integrations
Webhooks
API Key
Logout
Scheduling
Calendly6Connected

Connected as ops@acme.com

Disconnect
Google Calendar
Zoom
Behind the scenes Exabloom links your account and registers for the three events. The popup shows Connecting to Calendly…, then Connected!, then closes itself. ⑥ The card flips to Connected and shows the email that signed in.

From this moment, every booking, cancellation, and no-show in your Calendly organisation reaches your workspace. If the popup shows Something went wrong. instead, it closes on its own and the card is left as it was - try Connect again.

5

Disconnect, when you need to

app.exabloom.com/settings/integrations
BMBright MindsOrchard
Inbox
Leads
Calendars
Contacts
Bulk Actions
Win-back
Workflows
Analytics
Forms
Settings
Settings
Communication
Social Channels
Quick Replies
Availability
Notifications
Automation & Data
AI Actionables
AI Columns
Integrations
Webhooks
API Key
Logout
Scheduling
CalendlyConnected

Connected as ops@acme.com

7Disconnect
Google Calendar
Zoom
opens a confirmation
app.exabloom.com/settings/integrations
BMBright MindsOrchard
Inbox
Leads
Calendars
Contacts
Bulk Actions
Win-back
Workflows
Analytics
Forms
Settings
Settings
Communication
Social Channels
Quick Replies
Availability
Notifications
Automation & Data
AI Actionables
AI Columns
Integrations
Webhooks
API Key
Logout
Scheduling
CalendlyConnected

Connected as ops@acme.com

Disconnect
Google Calendar
Zoom

Disconnect Calendly?

The webhook subscription will be removed and this workspace will stop receiving Calendly events. Workflows using Calendly triggers will no longer fire.

Cancel8Disconnect
⑦ Disconnect is on the card while it is Connected. ⑧ Confirm in the dialog.

Disconnecting removes the event registration, and workflows with Calendly triggers stop firing immediately. Connecting the same Calendly account again later picks up where you left off - your existing triggers keep working without edits.

Connection statuses, decoded

The pill on the Calendly card is the integration’s health check. Anything other than Connected means events are not flowing - and each status names its own fix, so you never have to guess whether reconnecting will help. First, where to look:

app.exabloom.com/settings/integrations
BMBright MindsOrchard
Inbox
Leads
Calendars
Contacts
Bulk Actions
Win-back
Workflows
Analytics
Forms
Settings
Settings
Communication
Social Channels
Quick Replies
Availability
Notifications
Automation & Data
AI Actionables
AI Columns
Integrations
Webhooks
API Key
Logout
Scheduling
Calendly1Upgrade required

Your Calendly plan doesn’t support webhooks. Upgrade to Standard or above on Calendly, then reconnect.

2ReconnectRemove
Google Calendar
Zoom
① The status pill sits beside the name. The sentence under it explains the state. ② The buttons on the right are what you can do about it - here Reconnect and Remove.

And every state the card can be in, at reading size:

Events are flowingNothing to do.
CalendlyConnected

Connected as ops@acme.com

Disconnect
Sign-in expired, events pausedClick Reconnect and sign in again.
CalendlyReconnect needed

Authorization expired - events have paused. Reconnect to resume.

Reconnect
Calendly plan can’t send webhooksUpgrade to Calendly Standard or above, then Reconnect.
CalendlyUpgrade required

Your Calendly plan doesn’t support webhooks. Upgrade to Standard or above on Calendly, then reconnect.

ReconnectRemove
Connected account isn’t an Owner or AdminReconnect with a Calendly Owner or Admin account.
CalendlyAdmin access needed

This Calendly account isn’t an Owner or Admin of your organization, so it can’t set up webhooks. Reconnect with a Calendly admin account.

ReconnectRemove
Not connectedClick Connect.
CalendlyDisconnected

Trigger workflows when an invitee books, cancels, or is marked a no-show.

Connect
The same card in each state. Only Connected has a Disconnect button; the two problems that reconnecting alone can’t fix offer Reconnect and Remove.

The two orange-and-amber ones are worth internalising. Upgrade required is a plan problem: reconnecting with the same free account will fail again - upgrade in Calendly first, then Reconnect. Admin access needed is a person problem: the plan may be fine, but the account that connected can’t speak for the whole Calendly organisation - reconnect as an Owner or Admin. Reconnect needed is a sign-in that expired; reconnecting fixes it.

Right after you connect, the popup tells you the same thing on its own page - so you learn about the problem before you go back to Exabloom:

Plan upgrade required
app.exabloom.com/calendly/upgrade-required
Plan upgrade required

Calendly webhooks require a paid plan

Exabloom uses Calendly webhooks to receive booking events in real time. Webhooks are only available on Calendly Standard plans and above.

ops@acme.com

What to do

  1. 1Upgrade your Calendly account to Standard or above at calendly.com/pricing.
  2. 2Close this tab and click Reconnect in Exabloom.
Calendly admin access required
app.exabloom.com/calendly/permission-required
Calendly admin access required

This Calendly account can’t set up webhooks

Exabloom uses Calendly webhooks to receive booking events in real time. Creating them requires an Owner or Admin of your Calendly organization. The account you connected with doesn’t have that access.

ops@acme.com

What to do

  1. 1Ask an Owner or Admin of your Calendly organization to connect (or have them grant you admin access in Calendly).
  2. 2Close this tab and click Reconnect in Exabloom, signing in with the admin account.
What the popup shows when Calendly refuses to register for events. Both pages tell you to close the tab and click Reconnect.
Viewing rights aren’t enough
Organisation role and calendar access are two different things, and both have to be right. An account that is an Admin in the Calendly organisation but only holds viewing rights on the calendar behind your event types will get through sign-in, yet events still won’t flow. Grant that account admin rights on the calendar in Calendly and reconnect. It doesn’t need to be the calendar’s creator - admin rights are enough.

Start a workflow from a booking

Calendly gives you three triggers: Calendly meeting booked, Calendly meeting canceled and Calendly marked no-show. They are configured identically - the only difference is which Calendly moment fires them. Create or open a workflow first (the workflows guide covers that); the builder opens full screen.

1

Add the trigger

app.exabloom.com/workflow/v2/4f1c2a9e-7d3b-4e58-9a10-c6b2f0d8e3a7
BackCalendly bookings
DraftedSave
1
Add new trigger
opens the trigger picker
app.exabloom.com/workflow/v2/4f1c2a9e-7d3b-4e58-9a10-c6b2f0d8e3a7
BackCalendly bookings
DraftedSave
Add new trigger
Triggers
Add a workflow trigger
Search triggers...
Form
Form Submitted
Facebook lead form submitted
Send data
Inbound webhook
Integrations
2
Calendly meeting booked
Calendly meeting canceled
Calendly marked no-show
① Add new trigger, on a fresh workflow’s canvas. The sidebar is gone - the builder takes the whole window, that’s deliberate. ② The trigger picker opens on the right; Integrations is the last group, so scroll down or search for Calendly, then click the trigger.
2

Pick the account and, ideally, an event type

app.exabloom.com/workflow/v2/4f1c2a9e-7d3b-4e58-9a10-c6b2f0d8e3a7
BackCalendly bookings
DraftedSave
Calendly meeting booked
Edit Trigger
Calendly meeting booked
Trigger Name
Calendly meeting booked
Calendly account
3
ops@acme.com
Event type filter · optional
4
Intro Call - 30 min
Only Intro Call - 30 min bookings will start this workflow.
Available fields
5
Standard
Invitee nameInvitee emailEvent typeStart timeEnd timeStatusTimezoneCancel URLReschedule URL
Custom questions · Intro Call - 30 min
WhatsApp numberWhat would you like to cover?
Delete
Cancel6Save
③ Calendly account: your connected account. ④ Event type filter: leave it on Any event type, or pick one booking page. ⑤ Available fields: everything the booking will hand to later steps. ⑥ Save.
  • Calendly account - the connected account. With one connection per workspace it is pre-selected for you. If none is connected, the form says so and links straight back to Settings → Integrations.
  • Event type filter - optional, and the setting that matters most. Left on Any event type, the trigger fires for every booking across your whole Calendly organisation - every member, every meeting type. Pick a specific event type to scope the workflow to that booking page. The list shows the active event types of the Calendly account you connected with.
  • Available fields - display only; you don’t configure anything here. It is your preview of the chips you can use in later steps (see The booking’s fields).
  • Filters - below the fields, the same optional condition builder other triggers have (it starts as “No filters added - every match passes through”). Most setups never need it.
Reschedules fire twice
In Calendly, a reschedule is a cancellation plus a new booking - so one reschedule fires your canceled trigger and your booked trigger, back to back. If you run both a cancellation workflow and a confirmation workflow, a rescheduling customer will receive both messages. Word your cancellation message so it still reads correctly in that case (e.g. “Sorry to see your booking change…” rather than “Sorry you cancelled…”).

Match the booking to a contact

A Calendly event arrives knowing an invitee’s name and email - but not which of your contacts they are. That link is made by a Find Contact step, and because it’s essential, Exabloom adds one automatically the moment you save a Calendly trigger: it appears right under the trigger and opens itself for you. You can’t delete it - only configure it. Until it has a value mapped, it wears an amber Needs setup tag and the workflow can’t be published.

Find Contact matches on a phone number - which is also what WhatsApp needs to message anyone. Calendly’s standard fields don’t include one, so the reliable recipe starts in Calendly: add an invitee question to the event type’s booking form asking for their WhatsApp number, and make it required. Then in Exabloom:

app.exabloom.com/workflow/v2/4f1c2a9e-7d3b-4e58-9a10-c6b2f0d8e3a7
BackCalendly bookings
DraftedSave
Calendly meeting booked
Find ContactNeeds setup
Edit Action
Find Contact

This step matches the incoming Calendly meeting booked data to a contact. Choose which field identifies the contact below.

Contact Identification
Define how to identify contacts in your workflow
Primary identifier
Phone
Value
1
Secondary identifier
None
Value
If contact not found
Configure what happens when a contact cannot be identified
Create Contact
First name
Email
Phone no.
CancelSave
opens the fields picker
Search fields...
Contact
Calendly Meeting
System

Cancel URL

cancel_url

String

Reschedule URL

reschedule_url

String

Zoom join URL

zoom_join_url

String
2

WhatsApp number

WhatsApp number

String

What would you like to cover?

What would you like to cover?

String
then fill the rest and save
app.exabloom.com/workflow/v2/4f1c2a9e-7d3b-4e58-9a10-c6b2f0d8e3a7
BackCalendly bookings
DraftedSave
Calendly meeting booked
Find Contact
Edit Action
Find Contact
Contact Identification
Define how to identify contacts in your workflow
Primary identifier
Phone
Value
WhatsApp number
Secondary identifier
None
Value
If contact not found
Configure what happens when a contact cannot be identified
Create Contact
First name
Invitee name
Email
Invitee email
Phone no.
WhatsApp number
Cancel3Save
① The tag button on a Value field opens the fields picker. ② Pick your phone question - here WhatsApp number - under Calendly Meeting. ③ With Phone as the primary identifier and the chip in Value, click Save. Under If contact not found, the default Create Contact already lists First name, Email and Phone no. - map them the same way.
  • 1In the trigger, filter to that event type - the question appears as a violet chip, e.g. WhatsApp number.
  • 2In Find Contact, keep Phone as the primary identifier and put the WhatsApp number chip in its Value.
  • 3Leave If contact not found on Create Contact and map Invitee name, Invitee email and the phone chip - so brand-new bookers become contacts on the spot. An existing contact with that phone is simply reused (the default for If contact found is Do Not Update Contact).
Tip
Ask for the number in the booking form even if your booking page is reached from WhatsApp. People book from laptops, share links with colleagues, and type different emails than the ones you have - the phone number they type is the one identifier that reliably reconnects the booking to the right WhatsApp conversation.

With the contact matched, add your action the usual way - click the + on the line under Find Contact and pick Send WhatsApp Business - then save and publish.

app.exabloom.com/workflow/v2/4f1c2a9e-7d3b-4e58-9a10-c6b2f0d8e3a7
BackCalendly bookings
5Drafted4Save
Calendly meeting booked
Find Contact
Send WhatsApp Business
④ Save, then ⑤ turn the workflow to Published. The three-step shape every Calendly workflow starts with: trigger, the auto-added Find Contact, then your actions.

Want to check it before a real customer books? The builder’s Test tab can start the workflow with a made-up booking: for Calendly triggers you paste the event data as key-value pairs, and the run shows what each step did. The workflows guide walks through it.

The booking’s fields

Every Calendly trigger hands the same standard fields to the rest of the workflow, ready to drop into any later step as chips (the tag button you just used): Invitee name Invitee email Event type Start time End time Status Timezone Cancel URL Reschedule URL and Zoom join URL. They live under Calendly Meeting in the picker, which only appears once the workflow has a Calendly trigger.

Search fields...
Contact
Calendly Meeting
System

Invitee name

invitee_name

String

Invitee email

invitee_email

String

Event type

event_type_name

String

Start time

start_time

Date Time

End time

end_time

Date Time

Status

status

String

Timezone

timezone

String

Cancel URL

cancel_url

String

Reschedule URL

reschedule_url

String

Zoom join URL

zoom_join_url

String

WhatsApp number

WhatsApp number

String

What would you like to cover?

What would you like to cover?

String
The picker after choosing Calendly Meeting. Each row shows the field’s name, its underlying key, and its type. The last two rows are custom questions from the event type you picked in the trigger.
  • Start time and End time are converted to your workspace’s timezone and shown as, for example, 14/10/2026 03:00 PM - safe to drop straight into a message.
  • Cancel URL and Reschedule URL are personal links for that booking. Put the reschedule link in your confirmation and cancellation messages and customers fix their own scheduling - no back-and-forth.
  • Zoom join URL is filled when the Calendly event’s location is Zoom, and empty otherwise. (To create Zoom meetings from Exabloom instead, see Connect Zoom.)
  • Custom questions are the second tier. When you filter the trigger to one event type, the answers to that booking page’s invitee questions become extra chips - shown in violet in the trigger panel. This is how you get a WhatsApp number out of Calendly.
Good to know
Custom-question chips are captured from the event type at the moment you pick it in the trigger, and are keyed by the question’s exact wording. If you add or rename questions on the Calendly side later, reopen the trigger and re-pick the event type so the chips refresh.

One booking, start to finish

Put it together and a single booking travels like this. Every frame below is one moment; read left to right.

calendly.com/acme/intro-call
Acme Tuition
Intro Call - 30 min
56789101112131415161718
WhatsApp number
+65 9123 4567
Schedule Event
1Someone booksThey pick a slot and type a WhatsApp number on your booking page.
app.exabloom.com/workflow/v2/…
Calendly meeting bookedFind ContactSend WhatsApp Business
2The trigger firesCalendly tells Exabloom instantly; the Published workflow starts.
app.exabloom.com/workflow/v2/…
Find Contact
Primary identifier
Phone
Value
WhatsApp number
Same phone already a contact?
YesUse that contact (Do Not Update Contact, by default).
NoCreate Contact from Invitee name, Invitee email and the phone.
3Find the contactMatch on phone, or create the contact from the booking.
ATAcme Tuition
You’re confirmed for Intro Call - 30 min on 14/10/2026 03:00 PM. Need to change it? calendly.com/reschedule/…
4They get the messageYour confirmation lands on WhatsApp, reschedule link included.
The booking-to-contact journey. Calendly’s booking page (1) is theirs; frames 2 to 4 are your workflow: it wakes up, matches or creates the contact, and sends the message. Names, numbers and dates are placeholders.

Setups to copy

Four proven shapes. Each assumes the Find Contact recipe above is in place.

Instant WhatsApp confirmation
Meeting booked→Find Contact→Send WhatsApp Business

Confirm the moment they book: “You’re confirmed for {{Event type}} on {{Start time}}. Need to change it? {{Reschedule URL}}”. This is the ten-minute setup that makes the whole integration feel alive.

Cancellation win-back
Meeting canceled→Find Contact→Send WhatsApp Business

When a booking is cancelled, offer the door back: “Sorry to see your booking change - grab a new slot here: {{Reschedule URL}}”. Remember this also fires on reschedules, so keep the wording neutral.

No-show recovery
Marked no-show→Find Contact→Send WhatsApp Business

When the host marks someone a no-show in Calendly, follow up the same hour with an easy rebook link - no-shows convert far better while the intent is still warm.

Different journeys per meeting type
Booked · Intro Call→…→Booked · Follow-up

Build one workflow per event type, each with its own event-type filter - the intro-call booking gets a prep checklist, the follow-up booking gets a quiet internal note to the owner. Filters keep the workflows from firing on each other’s bookings.

Good to know & pitfalls

  • Free Calendly can’t connect. Webhooks need Calendly Standard or above - and a plan that lapses back to free stops events without changing the card’s status. If events stopped, check the Calendly plan, upgrade, then Disconnect and Connect again.
  • Admin rights on the calendar, not just on the organisation. A connecting account that only has viewing rights on the calendar behind your event types won’t work, even if it’s an Admin of the Calendly organisation. Being the calendar’s creator isn’t required - admin rights on it are.
  • Reconnecting with a different account? Recheck your triggers. Each trigger is bound to the Calendly account it was built with. Swap the connected account and existing triggers stop matching - open each one and re-select the account. (The same account disconnecting and reconnecting is fine.)
  • Any event type means the whole organisation. An unfiltered trigger fires for every member’s bookings in your Calendly organisation. That’s occasionally what you want, and usually a surprise - filter by event type unless you mean it.
  • Reschedules = cancel + book. Both triggers fire on a reschedule. Word cancellation messages so they read correctly either way.
  • Only Published workflows fire. A draft with a Calendly trigger does nothing - publish it, then make a test booking (or use the Test tab) to see the whole chain run.
  • Edited your Calendly questions? Refresh the chips. Custom-question chips are captured when you pick the event type in the trigger - re-pick it after changing questions in Calendly.
  • Disconnect stops everything at once. Removing the connection removes the event registration - every Calendly-triggered workflow goes quiet immediately, not just new ones.

Need a hand?

Our Singapore-based team is one message away - happy to help you get set up.