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.

An admin approves every new account by hand. Nothing is created until then. We reply by email; no newsletter, no sequence.

Want to see it first? Book a demo

  • Webhook, inbound
  • Meeting plus contact written
  • Reconcile job catches misses
app.salescrew.io/settings
Settings: MCP tokens, integrations and the audit log

The short answer

  • The mechanism is a Calendly webhook pointed at an edge function on your own instance. Calendly tells SalesCrew about each booking, and your calendar stays the source of availability.
  • 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

What each part of the connection does, from booking to follow-up.

WhatMechanismDirectionObjectsStatus
Booking createdCalendly webhook to an edge function on your instanceInboundMeetings, contacts, inbound leadAvailable
Contact matchingMatched on the invitee email, created if absentInboundContacts, companiesAvailable
AttributionBooking source recorded on the leadInboundLeads, marketing tablesAvailable
ReconcileScheduled job re-reads recent bookings through the Calendly APIInboundMeetingsAvailable
Cancellation and rescheduleHandled by the same webhook and reconcile pathInboundMeetingsAvailable
Reminder and no-show recordsWritten on the meetingInternalMeetingsAvailable
Reminders and no-show recovery that sendSMS and email at 24h and 2hOutboundMeetingsAvailable
Round-robin poolsBookings shared across a teamInternalMeetingsAvailable

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

    Get the endpoint

    Your instance exposes a booking endpoint as an edge function. Copy the URL and the key from Settings.

  2. 2

    Create the webhook in Calendly

    Point a Calendly webhook subscription at that URL for invitee created, canceled and rescheduled events.

  3. 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. 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. 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. 6

    Wire the follow-up

    Meetings trigger a task or a cadence step, and reminders go out by SMS and email at 24 hours and 2 hours before the start.

Questions

How does the connection work?
A Calendly webhook posts into your own instance, and an API read powers the reconcile job. Both land in your own database.
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.
What happens after the booking lands?
SalesCrew holds the meeting record, creates a reminder task or a cadence step, and sends reminders by SMS and email at 24 hours and 2 hours before the meeting.
Can I use Cal.com too?
Yes. Any scheduler that can post a webhook reaches 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.

An admin approves every new account by hand. Nothing is created until then. We reply by email; no newsletter, no sequence.

Want to see it first? Book a demo