Calendly + SalesCrew
A booking on your Calendly link fires a webhook into your instance. SalesCrew writes the meeting, creates or matches the contact, and records the lead as inbound with its source.
- Webhook, inbound
- Meeting plus contact written
- Reconcile job catches misses

The short answer
- The mechanism is a Calendly webhook pointed at an edge function on your own instance. It is one-way: Calendly tells SalesCrew about a booking, and SalesCrew does not write back to Calendly.
- Each booking produces a meeting record and a contact, matched on email if the person already exists. The lead is logged on the inbound channel with the source it arrived from, so cost per booked meeting by channel stays a query rather than a reconciliation exercise.
- A scheduled reconcile job re-reads recent bookings, so a webhook that failed to deliver does not silently lose a meeting. Bookings can also be created directly with the meeting_create tool.
Mechanism
One direction, one object, and the two things it does not do.
| What | Mechanism | Direction | Objects | Status |
|---|---|---|---|---|
| Booking created | Calendly webhook to an edge function on your instance | Inbound | Meetings, contacts, inbound lead | Available |
| Contact matching | Matched on the invitee email, created if absent | Inbound | Contacts, companies | Available |
| Attribution | Booking source recorded on the lead | Inbound | Leads, marketing tables | Available |
| Reconcile | Scheduled job re-reads recent bookings through the Calendly API | Inbound | Meetings | Available |
| Cancellation and reschedule | Handled by the same webhook and reconcile path | Inbound | Meetings | Available |
| Writing availability back to Calendly | Not built | , | , | Not available |
| Reminders and no-show recovery that send | Records exist today; sending is not built | , | Meetings | On the roadmap |
| Round-robin pools | Not built | , | : | On the roadmap |
Mechanisms read from the SalesCrew integration table, September 2026. Calendly's own webhook documentation is the authority on payload shape and retry behaviour.
Setup
Fifteen minutes, and the only fiddly part is proving a real booking arrives.
- 1
Get the endpoint
Your instance exposes a booking endpoint as an edge function. Copy the URL and the key from Settings.
- 2
Create the webhook in Calendly
Point a Calendly webhook subscription at that URL for invitee created, canceled and rescheduled events.
- 3
Book a real test meeting
Use a spare address and book through the public link. A test payload proves the plumbing; a real booking proves the matching.
- 4
Check the record
The meeting should exist, the contact should exist or be matched, and the lead should carry its source. meeting_list and booking_list read the same rows back.
- 5
Turn on reconcile
The scheduled job catches deliveries that failed. Leave it on: webhooks are not guaranteed, and a lost booking is an expensive kind of lost.
- 6
Wire the follow-up
Meetings can trigger a task or a cadence step. Sending reminders automatically is on the roadmap, so plan a human step for that today.
Questions
- Is this a native Calendly app?
- No. It is a webhook into your own instance, plus an API read for the reconcile job. There is no Calendly marketplace listing, and saying otherwise would be a claim we cannot back.
- What if the webhook fails?
- A scheduled reconcile job re-reads recent bookings and fills the gap. That job exists because webhook delivery is best-effort at every vendor, not only Calendly.
- Do reminders send automatically?
- Not today. SalesCrew holds the meeting record and can create a reminder task, but reminders and no-show recovery that actually send by SMS and email are on the roadmap.
- Can I use Cal.com instead?
- Not with a built connector. Cal.com is a roadmap item. In the meantime any scheduler that can post a webhook can reach the same inbound endpoint, and meeting_create writes a meeting directly.
- Does the booking carry marketing attribution?
- Yes, when the source is on the booking. That is the point of putting bookings in the same database as GA4, Search Console and ad spend: the join is a query rather than a spreadsheet.
Send one real booking through and watch the record appear
Meeting, contact and source, written in the same database as your pipeline.