What a calendar connection gives you
A connected calendar lets a Finn read live availability and write an event during the call. Without one, a Finn can talk about scheduling but cannot commit a slot, and the caller hangs up with nothing booked.
Two mechanics exist, and they are not equivalent:
| Type | Providers | Mechanic |
|---|---|---|
| Direct booking | Google Calendar, Microsoft Outlook / Microsoft 365 | Finn reads availability and creates the event mid-call |
| Link handoff | Calendly, Cal.com | Finn says it will send a booking link, then an SMS or email goes out with the URL |
Link handoff providers do not allow direct booking over their API in the way Google and Outlook do. The caller has to leave the call, open the link, and pick a slot themselves. Expect drop-off between the call ending and the booking existing. If you have a choice of calendar, connect Google or Outlook.
Connecting Google Calendar
All calendar setup happens in the dashboard, not through the API. There is no endpoint for creating a calendar connection.
- Go to Settings → Integrations → Google Calendar → Connect.
- Log into Google and grant calendar permissions.
- Choose which calendar to book into. Most Google accounts carry several. Picking the wrong one means bookings land somewhere nobody looks.
- Set availability rules (see below).
- Save.
Microsoft Outlook and Microsoft 365 follow the same flow: authorize via Microsoft, pick a calendar, set availability.
Availability rules
Availability rules are what the Finn checks before offering a time. Set them during connection, or change them later on the same screen.
| Rule | What it controls | Failure if left wrong |
|---|---|---|
| Working hours | The window in which bookings are allowed | Finn offers slots outside the hours anyone is available to take them |
| Buffer between events | Minimum gap between consecutive appointments | Back-to-back bookings with no travel or prep time |
| Max events per day | Optional cap on bookings in a single day | A high-volume campaign fills a whole day in minutes |
Max events per day is optional. Leaving it unset is the right choice for low-volume inbound and the wrong one for an outbound campaign that dials hundreds of contacts, where a single afternoon can absorb every slot you had.
Using the calendar in a Finn
Once connected, the calendar is available to every Finn in the workspace. You attach it in one of two places:
- Add a Book Calendar task to the Finn. See tasks.
- Add the equivalent booking action as a node in the workflow. See workflow nodes.
Which you pick depends on how the rest of the Finn is built. A prompt-driven Finn with no branching uses a task. A Finn that has to qualify the caller before offering a slot belongs in the workflow, so the booking node sits behind the qualification branch.
The booked time is available afterwards in post-call analysis. A call.analyzed webhook carries it:
{
"event": "call.analyzed",
"call": {
"id": "call_abc123",
"deployment_id": "deploy_xyz",
"started_at": "2026-06-15T10:30:00Z",
"duration_seconds": 142,
"contact": { "name": "Alice Chen", "phone_number": "+15551234567" },
"post_call_analysis": {
"appointment_booked": true,
"appointment_time": "2026-06-22 14:00"
},
"sentiment": "positive"
}
}
Use that to reconcile bookings against your own systems. See post-call webhooks and analysis fields.
Things that go wrong
Wrong calendar selected. The connection succeeds, calls go fine, and bookings appear on a calendar nobody checks. Book a test appointment through agent testing and confirm the event turns up where you expect before deploying.
Availability rules never revisited. Working hours set once during a pilot stay in place when the campaign scales. Check them before every outbound campaign.
Cal.com and Calendly measured as booked calls. A call where the Finn sent a link is not a booking. The link may never be opened. Do not read appointment_booked on link-handoff providers the same way you read it on Google or Outlook.
Connection needs attention. The integration tile in Settings → Integrations shows Not connected, Connected, or Needs attention. A revoked OAuth grant or a changed Google password puts a live connection into Needs attention, and bookings stop. Nothing in the call flow announces this. Check the tile if bookings stop appearing.
Concurrency and double booking. Behaviour when several concurrent calls target the same remaining slot is not documented here and not yet settled. Treat a tight last-slot scenario as untested, and use buffers and daily caps to keep from operating that close to the edge.
Disconnecting
Disconnect from the same tile you used to connect. Any Finn with a Book Calendar task or booking node will stop being able to book. Remove or rewire those before disconnecting, or the Finn will attempt a booking mid-call with nothing behind it.
Related: integrations overview, CRM integrations, tools overview.