What this agent does

A Calendly follow-up agent listens for booking events, treats each invitee as a small workflow, and runs the sequence from confirmation to either a held meeting or a no-show recovery. It is not a drip campaign. It is a finite state machine attached to one booking.

The state machine has five states: booked, confirmed, reminded, held, and recovered-or-closed. Each transition either triggers a draft email, files an activity in the CRM, or both. Drafts live in a private review thread for the host until shadow mode ends.

For a parallel pattern in another channel, see AI agent for inbox triage. For meeting-specific follow-up (post-call summaries), see AI agent for meeting follow-ups. For the cluster context, see what an AI agent can actually do.

Calendly scopes and permissions

Calendly's OAuth permissions are coarser than Slack's, but the principle of least privilege still applies. Per Calendly's developer documentation, the API exposes scopes for invitees, scheduled events, event types, webhook subscriptions, and routing forms.

For a follow-up agent, the read-only set is enough:

Do not request scheduled_events:write unless you are also building rescheduling. Rescheduling is a separate trust step and should ship after the follow-up flow has been calibrated.

Calendly signs webhook payloads with HMAC SHA-256 over the request body, using a signing key the developer sets at subscription time. The agent must verify this signature before doing anything with the payload, including logging. A misconfigured agent that logs unverified payloads to a shared log store is the easiest way to leak invitee emails.

Event taxonomy and triggers

The agent watches three Calendly webhook types: invitee.created, invitee.canceled, and (if you enable it) invitee.no_show. The first two are documented and available on all paid tiers. The third is a server-side mark the host applies after the meeting; it is not automatic.

The taxonomy maps cleanly to four templates:

Free-text classification of meetings (urgent, sales, support, internal, etc.) is unnecessary. The Calendly event type already carries that signal. Use it directly.

Shadow mode for two weeks

Every draft the agent produces during the first two weeks goes to a private review thread, not to the invitee. The host clicks send, edit-then-send, or skip. The agent records the decision and the diff.

Two metrics matter at the end of shadow:

The confirmation template should graduate first. It is short, factually grounded, and low-stakes. Reminder graduates second. Recap third. Recovery last, because a bad recovery email costs more than a missed one.

No-show recovery workflow

Calendly does not auto-detect no-shows. The agent has to infer them.

Three signals together imply a no-show: the host did not press mark held, the meeting platform's participant log shows only one of the two parties, and 15 minutes have passed since the scheduled end time. When all three are true, the agent files a recovery task and drafts the first recovery message.

The first recovery message offers two specific reschedule slots within the next five business days. It does not ask "when are you free?" Open questions in recovery emails are the single largest reason recovery sequences underperform: they ask the invitee for the work that the agent should be doing.

The second recovery message fires 72 hours later, only if the first received no reply and no reschedule. It is a soft close: "I'll assume this isn't a priority right now. Reply if it ever is." There is no third message. A third recovery message is spam.

Recovery write-back: every recovery attempt files an activity on the relevant CRM record (lead, contact, opportunity). The activity records the original meeting time, both attempted reschedule slots, the outcome, and the source webhook ID. This audit trail is what makes recovery defensible when sales ops asks why a deal stalled.

Guardrails

Five guardrails keep the agent from generating complaints.

These five guardrails together cut the agent's "regrettable email" rate to near zero in our internal testing. See how we test AI agents with 80 tests per capability for the methodology.

Common mistakes

Polling instead of webhooking. Polling the events endpoint every minute hits Calendly's rate limits, lags real bookings by up to a minute, and creates a deduplication problem the agent does not need. Subscribe to webhooks and verify signatures.

Auto-sending the recap before the host confirms. The recap email contains action items. Action items get committed to. A wrong action item committed to in writing is a small reputation cost. Hold the recap until the host marks the meeting held and approves the action item list.

Enriching from data brokers. Pulling invitee enrichment from third-party contact databases is the single fastest way to acquire a GDPR complaint. Use only what the invitee has effectively published. Public LinkedIn, company about page, public posts they linked from their profile. If your enrichment source has a "premium API" tier that promises business emails, do not use it.

One template for every event type. A sales intro and a customer support call do not share a template. Map the Calendly event type to the template and switch on event-type ID, not on a classifier guess.

Ignoring the cancellation case. invitee.canceled is not just a cleanup signal. It is feedback. Track cancellation rate per event type, per host, per traffic source. A high cancellation rate on one event type is almost always a calendar misconfiguration (wrong default duration, broken video link, mandatory question that scares people off).

Frequently asked questions

What does a Calendly follow-up agent actually do?

It subscribes to Calendly invitee webhooks, reads each booked event, and drives a pre-meeting and post-meeting sequence: it drafts a prep email with the invitee's public context, files the meeting under the right CRM record, sends a reminder at a configurable interval, and on a no-show it drafts a recovery email and creates a follow-up task. It does not auto-send anything in the first two weeks. It posts every draft into a private review thread.

Which Calendly scopes does the agent need?

Read-only on day one: invitees, scheduled events, event types, and webhook subscriptions. Write scopes (cancel, reschedule) are not required for a follow-up agent and should not be granted. If you do enable rescheduling, gate it behind explicit human approval, since cancellation rate is one of the metrics buyers watch.

How does the agent handle no-shows without nagging the invitee?

It waits 15 minutes after the scheduled end time, checks the meeting platform's attendance signal if available (Zoom participant log, Google Meet attendance report), and only fires a no-show recovery draft when both the host and the agent confirm absence. The first message offers two reschedule slots, not a five-paragraph apology request. The second message is a soft close after 72 hours, not another reschedule push.

Should the agent enrich invitees with third-party data?

Only with sources the invitee has effectively published: company website, LinkedIn public profile, posts they have shared. Do not pull from data brokers or scraped contact databases in markets where GDPR or CCPA applies. The agent should log the source of every enrichment field so legal can audit the trail.

How long should the agent run in shadow mode before sending real emails?

Two weeks or 50 meetings, whichever comes first. During this window the agent drafts everything but sends nothing. The host reviews each draft and labels it as send, edit, or skip. When the send-without-edit rate crosses 70%, graduate the lowest-risk template (the meeting confirmation reply) to auto-send. Add the next template only after another 30 confirmed sends with under 5% complaint rate.

Three takeaways before you close this tab

Sources

The same shape, applied to other tools and surfaces: