Cal.com → Attio: open-source scheduling, production-grade integration

Cal.com is the open-source Calendly alternative, and it's catching up fast - especially for teams that want self-hosted scheduling or richer routing logic. The integration pattern is identical to Calendly; the advantages are portability and a cleaner API. We wire Cal.com into Attio with the same capabilities we give Calendly: capacity-aware round-robin, territory routing, UTM capture, routing-form context, Slack pre-reads, and reschedule/cancel handling.

Direction

Cal.com ↔ Attio (bookings, routing, cancellations)

Stack

Cal.com API, Attio API, n8n, Slack

The what

What this integration actually does

Every Cal.com booking creates or updates an Attio Person, routes to the right owner, logs a Meeting activity with full context, and optionally pings the AE in Slack with pre-meeting research.

The how

How we build it

  1. 1

    Map Cal.com event types to Attio meeting categories.

  2. 2

    Register Cal.com webhooks on booking created, rescheduled, and canceled.

  3. 3

    Routing logic in n8n: capacity-aware round-robin, territory overrides, respected OOO.

  4. 4

    Writeback to Attio with all booking context: routing form answers, UTMs, referral source.

  5. 5

    Slack pre-read to the assigned owner.

  6. 6

    Cancel/reschedule handling - single logical event, not a cancel + create pair.

Under the hood

What lives inside the pipeline

  • Self-host-friendly: works whether you run Cal.com hosted or on your own infra.
  • OAuth + API key auth supported (API key is simpler for server-to-server).
  • Rich routing-form integration - Cal.com's routing forms carry more context than Calendly's by default.
  • Managed users support for large teams.

Hard-earned lessons

What we learned the hard way

  • Cal.com's v2 API is still stabilizing. Pin the API version in your integration or expect breakage when they ship changes.
  • Self-hosted Cal.com instances sometimes have older API surfaces. Check before assuming feature parity with cal.com.
  • Routing forms are more powerful than Calendly's but also more complex - treat them as a first-class part of your integration.

Case study

Privacy-conscious B2B team

Problem

Wanted scheduling but didn't want another vendor holding their prospect data. Self-hosted Cal.com gave them the ownership; the CRM sync was missing.

Solution

Self-hosted Cal.com, webhook sync into Attio with the full capacity-aware round-robin stack.

Outcome

Same booking UX as Calendly, zero third-party data dependency, full CRM integration.

FAQ

Questions we get

Architecturally identical. Different auth and webhook payload shape. If you switch between them, we re-point the integration without rebuilding.

Yes. Team round-robin, managed users, and organizations all supported - we wire them to Attio's user model.

Both. The integration is the same either way; only auth endpoints differ.

Want this running on your Attio?

Book a free 30-min call. We'll map your use case to what we've already shipped and tell you whether this fits - honestly.

Book a 30-min call