Skip to main content

Tools and integrations

Calendar integrations

Booking against live availability.

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:

TypeProvidersMechanic
Direct bookingGoogle Calendar, Microsoft Outlook / Microsoft 365Finn reads availability and creates the event mid-call
Link handoffCalendly, Cal.comFinn 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.

  1. Go to Settings → Integrations → Google Calendar → Connect.
  2. Log into Google and grant calendar permissions.
  3. Choose which calendar to book into. Most Google accounts carry several. Picking the wrong one means bookings land somewhere nobody looks.
  4. Set availability rules (see below).
  5. 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.

RuleWhat it controlsFailure if left wrong
Working hoursThe window in which bookings are allowedFinn offers slots outside the hours anyone is available to take them
Buffer between eventsMinimum gap between consecutive appointmentsBack-to-back bookings with no travel or prep time
Max events per dayOptional cap on bookings in a single dayA 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.