Manychat + Calendly: from DM to booked call
Sending a scheduling link is easy. Knowing who booked isn’t. Three ways to connect Manychat to Calendly, and how to verify each booking.
ManySetter teamUpdated 8 min read
On this page
Chapter 01Decide
Choose the setup you need
Calendar booking in Manychat comes in three levels. Each one tells you something different about the call.
Three ways to connect Manychat and Calendly
| Method | What you get | What you need | Effort |
|---|---|---|---|
| Link in a flowWhat you get: Link sent, not a bookingWhat you need: Event link + Open website buttonEffort: Minutes | Link sent, not a booking | Event link + Open website button | Minutes |
| Calendly App by ManyAppsWhat you get: Booking, reminders, rescheduling (listed); booking record not statedWhat you need: Paid app (free trial), ManyApps API keyEffort: One install, two flows | Booking, reminders, rescheduling (listed); booking record not stated | Paid app (free trial), ManyApps API key | One install, two flows |
| Webhooks and an integrationWhat you get: New and canceled events, per leadWhat you need: Eligible paid Calendly and Manychat plans, tokens, endpointEffort: A build, then a test | New and canceled events, per lead | Eligible paid Calendly and Manychat plans, tokens, endpoint | A build, then a test |
The Calendly App is a third-party app
ManyApps builds and supports it, not Manychat (Manychat on third-party apps (opens in a new tab)). Its listing shows no price or channels, and doesn’t say whether a booking is saved on the contact: test it on your account first.
Start with the link. Move up a level only when you need a booking state in your records.
Chapter 02Setup
Set up the simple flow
Create the right Calendly event
Set its length, availability, time zone and booking questions.
Ask one or two fit questions
Only what decides whether a call makes sense. Save an answer only if you’ll use it. Pick your fit criteria.
Ask for agreement
Propose the call before sending anything. Offer a person for complex questions.
Send the real event link
Where to click: Text block+ Add ButtonOpen website
Paste the event’s own link, not your profile page. Button names stay under 20 characters (Manychat’s buttons guide (opens in a new tab)).
Test as a prospect
From a separate account: open the link, book, then cancel. Check the event each time.
Ask for agreement
After the fit questions, when a call makes sense.
Based on Replace [goal], would a short call help us see whether Replace [offer] is a fit?
Yes, let’s talk- Next
- No or unsure? Answer the question, or offer a person.
- Why it works
- The lead chooses the call before seeing a calendar.
Send the link
Right after a yes.
Great. Pick a time that works for you here:
Pick a time- Next
- The button opens your Calendly event.
- Why it works
- One clear action, sent while the lead is still in the chat.
Chapter 03States
Don’t confuse a click with a booking
- 01Link sentYou shared it
- 02Link clickedInterest, no event
- 03Event createdThe call is booked
- 04Canceled, moved or no-showTracked separately
Can’t confirm events yet?
Label the metric “booking link sent,” not “calls booked.”
Chapter 04Confirm
Confirm the booking with a real signal
Calendly webhooks send Invitee Created and Invitee Canceled events to your endpoint when someone books or cancels. Per the Calendly API overview (opens in a new tab), they need “a paid subscription on the Professional, Standard, Standard Plus, Teams, Teams Plus, or Enterprise plan,” and a personal access token or OAuth app.
- 01Event createdWebhook received
- 02Match the leadEmail from the chat
- 03Store the event IDNo duplicates
- 04Mark as bookedLead state updated
- A user’s token only sees that user’s events; an admin or owner token covers the organization (Calendly API overview (opens in a new tab)).
- Ask for the email in the chat before the link, and have the lead book with the same one.
To mark the Manychat contact booked, your server calls the Manychat API with your account key (eligible paid Manychat plans): see the Manychat API guide.
Chapter 05Match
Match each Calendly event to a lead
Each webhook needs three answers: which lead it belongs to, whether you’ve seen it before, and what happens to the follow-ups.
Five cases, one decision each
| Case | Calendly sends | Your integration | Follow-ups |
|---|---|---|---|
| Booked, email matchesCalendly sends: Invitee CreatedYour integration: Marks the lead bookedFollow-ups: Stopped; call reminders still run | Invitee Created | Marks the lead booked | Stopped; call reminders still run |
| Booked, no matchCalendly sends: Invitee CreatedYour integration: Status unknown; a person checksFollow-ups: Paused | Invitee Created | Status unknown; a person checks | Paused |
| Same event againCalendly sends: Invitee Created, same event IDYour integration: Ignored: one bookingFollow-ups: No change | Invitee Created, same event ID | Ignored: one booking | No change |
| RescheduledCalendly sends: Canceled (rescheduled) and CreatedYour integration: Moves the booking; never marks it canceledFollow-ups: Still stopped | Canceled (rescheduled) and Created | Moves the booking; never marks it canceled | Still stopped |
| CanceledCalendly sends: Invitee Canceled onlyYour integration: Marks it canceled; offers the link onceFollow-ups: Stopped, call reminders too | Invitee Canceled only | Marks it canceled; offers the link once | Stopped, call reminders too |
Chapter 06In practice
Stop following up when the event arrives
A nudge to book, sent after the lead booked, makes the chat look unattended. Stop every booking follow-up on the matched event, never on the click.
Have your integration set a booked field or tag on the contact, and put a Condition before each follow-up that skips it when it’s set. For timing, including WhatsApp’s 24-hour window, see when to follow up and when to stop.
- Done: Qualified3 clients, in the 2 to 10 range10:17 AM
- Done: Follow-up sentText, after 2 hours12:17 PM
- Done: Booked from your linkThu 2:00 PM · calendar confirmed1:05 PM
- Stopped: Follow-ups stoppedThe next ones never went out
Confirmed by Calendly
Chapter 07Test
Test with two real contacts
Run this before you trust a single number. Contact A and Contact B each get the link through the live flow.
0 of 6 completed
ManySetter
Book the call when leads fit.
An AI setter on top of your Manychat flows: it qualifies each lead and books the call when they fit.
- Keeps your Manychat flows
- Books in your Calendly, or shares your link
- Counts a call once the calendar confirms
Build and test free · Manychat billed separately
Chapter 08Avoid
Common errors
Paste the event’s own link, then open it from a test account before going live.
Set Calendly’s primary time zone to your working time zone, and check your Manychat account time zone in Settings › General, as Manychat advises (opens in a new tab).
Store the event ID and ignore any webhook you already processed.
It arrives as a cancellation marked rescheduled plus a new booking (Calendly’s developer docs (opens in a new tab)). Keep one active call.
The event didn’t match the lead, or the stop rule listens to clicks. Check the email match, then stop on the event.
Webhooks aren’t triggered by past events (webhooks overview (opens in a new tab)). Test with a fresh booking.