---
title: Cal.com API Integration on Truto
slug: calcom
category: Scheduling
canonical: "https://truto.one/integrations/detail/calcom/"
---

# Cal.com API Integration on Truto



**Category:** Scheduling  
**Status:** Generally available

## Unified APIs

### Unified Calendar API

- **Availability** — Represents the availability of a person in a time period.
- **Calendars** — Represents a calendar of a user. Can have multiple events associated with it.
- **Event Types** — 
- **Events** — Events are the time-bound tasks that are associated with a calendar.

## MCP-ready AI tools

Truto exposes 20 tools for Cal.com that AI agents can call directly.

- **list_all_calcom_schedules** — Get all schedules of the authenticated user in Cal.com. Returns schedule id, ownerId, name, timeZone, availability with days and times, isDefault flag, and overrides with date and times.
- **get_single_calcom_schedule_by_id** — Get schedule details by id in Cal.com. Returns id, ownerId, name, timeZone, availability (days, startTime, endTime), isDefault, and overrides (date, startTime, endTime).
- **create_a_calcom_schedule** — Create a schedule with name, timeZone, availability, and isDefault for the authenticated user in Cal.com. Returns id, ownerId, name, timeZone, availability, isDefault, and overrides fields.
- **update_a_calcom_schedule_by_id** — Update a schedule by id in Cal.com. Requires scheduleId. Returns updated schedule fields including name, timeZone, availability (days, startTime, endTime), isDefault, and overrides (date, startTime, endTime).
- **delete_a_calcom_schedule_by_id** — Delete a schedule by id in Cal.com. Returns status indicating success or error.
- **list_all_calcom_calendars** — Get all calendars connected to Cal.com. Returns connectedCalendars array with integration details, credentialId, primary calendar info, and calendars list. Also returns destinationCalendar with id, integration, userId, and name.
- **list_all_calcom_event_types** — Get all event types in Cal.com. Returns id, title, description, lengthInMinutes, locations, bookingFields, price, currency, and other event details.
- **get_single_calcom_event_type_by_id** — Get event type by id in Cal.com. Returns id, lengthInMinutes, title, slug, description, locations, bookingFields, disableGuests, recurrence, price, currency, isInstantEvent, scheduleId, ownerId, and users fields.
- **create_a_calcom_event_type** — Create an event type in Cal.com with required parameters lengthInMinutes, title, and slug. Returns id, title, slug, description, locations, bookingFields, disableGuests, slotInterval, minimumBookingNotice, beforeEventBuffer, afterEventBuffer, recurrence, price, currency, scheduleId, bookingLimitsCount, bookingLimitsDuration, bookingWindow, bookerLayouts, confirmationPolicy, requiresBookerEmailVerification, hideCalendarNotes, lockTimeZoneToggleOnBookingPage, color, seats, offsetStart, customName, destinationCalendar, useDestinationCalendarEmail, hideCalendarEventDetails, hideOrganizerEmail, calVideoSettings, ownerId, and users.
- **update_a_calcom_event_type_by_id** — Update an event type by id in Cal.com. Returns updated event type fields including id, lengthInMinutes, title, slug, description, locations, bookingFields, disableGuests, slotInterval, minimumBookingNotice, beforeEventBuffer, afterEventBuffer, recurrence, price, currency, scheduleId, bookingLimitsCount, bookingLimitsDuration, bookingWindow, bookerLayouts, confirmationPolicy, requiresBookerEmailVerification, hideCalendarNotes, color, seats, offsetStart, customName, destinationCalendar, useDestinationCalendarEmail, hideCalendarEventDetails, hideOrganizerEmail, calVideoSettings, ownerId, and users.
- **delete_a_calcom_event_type_by_id** — Delete an event type by id in Cal.com. Returns the deleted event type's id, lengthInMinutes, title, and slug.
- **list_all_calcom_teams** — Get list of teams in Cal.com. Returns teams array with team details.
- **get_single_calcom_team_by_id** — Get a team by id in Cal.com. Returns id, parentId, name, slug, logoUrl, bio, privacy settings, metadata, theme, brand colors, bannerUrl, timeFormat, timeZone, and weekStart.
- **create_a_calcom_team** — Create a team in Cal.com with required name. Returns status and data of the created team.
- **update_a_calcom_team_by_id** — Update a team by id in Cal.com. Returns updated team fields including id, parentId, name, slug, logoUrl, calVideoLogo, appLogo, appIconLogo, bio, hideBranding, isOrganization, isPrivate, hideBookATeamMember, metadata, theme, brandColor, darkBrandColor, bannerUrl, timeFormat, timeZone, and weekStart.
- **delete_a_calcom_team_by_id** — Delete a team by id in Cal.com. Requires id. Returns status 200 on success.
- **list_all_calcom_bookings** — Get all bookings in Cal.com. Returns id, uid, title, description, hosts, status, cancellationReason, start, end, duration, eventTypeId, meetingUrl, location, createdAt, updatedAt, attendees, guests, and rating fields.
- **get_single_calcom_booking_by_id** — Get booking details by id in Cal.com. Returns fields including id, uid, title, description, hosts, status, cancellationReason, reschedulingReason, start, end, duration, eventType, meetingUrl, location, attendees, and guests.
- **create_a_calcom_booking** — Create a booking with start time and attendee details in Cal.com. Provide eventTypeId or eventTypeSlug with username/teamSlug and optionally organizationSlug. Returns booking id, uid, title, hosts, status, start, end, duration, eventTypeId, meetingUrl, location, metadata, attendees, guests, and bookingFieldsResponses.
- **list_all_calcom_schedule** — Get all schedules in Cal.com. Returns schedules with id, userId, name, timeZone, and availability including days, startTime, and endTime.

## How it works

1. **Link your customer's Cal.com account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Cal.com.** The Proxy API is a 1-to-1 mapping of the Cal.com API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Embed scheduling natively in your ATS or CRM** — Let your users create interview slots or sales meeting links directly from your app without switching to Cal.com. Truto handles auth and API complexity so you can ship the integration in days, not weeks.
- **Automate booking creation from workflow triggers** — When a candidate moves to an interview stage or a deal reaches a demo phase, your app can programmatically create bookings via Cal.com and surface the meeting URL inline — no manual copy-pasting required.
- **Sync team rosters for accurate round-robin routing** — Keep your internal user groups (sales pods, support tiers, recruiting panels) mirrored with Cal.com Teams so round-robin and routing logic stays accurate without manual double-entry by your end users.
- **Surface real-time availability inside your product** — Fetch schedules and event type configurations from Cal.com to render available time slots in your own UI, enabling white-labeled booking experiences for telehealth, coaching, or marketplace platforms.
- **Log meeting activity back to your system of record** — Pull booking data — attendees, duration, status, cancellation reasons — into your app's activity timeline for reporting, no-show detection, and engagement scoring without your users lifting a finger.

## What you can build

- **One-click interview scheduling from pipeline stages** — Automatically create a Cal.com event type and share the booking link when a recruiter moves a candidate into an interview column, then pull the confirmed meeting URL back into the candidate profile.
- **White-labeled availability picker** — Read schedules and event type slot configurations via the Unified Calendar API to render a fully branded time-slot selector inside your own app, with no Cal.com UI exposed to end users.
- **Automated schedule provisioning for new users** — When a service provider, sales rep, or clinician is onboarded in your platform, programmatically create their Cal.com schedule and standard event types with preset durations, locations, and pricing.
- **Team roster sync with Cal.com Teams** — Mirror your app's user groups to Cal.com Teams in real time — add or remove members, update branding, and manage privacy settings so routing pools are always current.
- **Meeting activity dashboard with no-show detection** — Aggregate booking data across all connected Cal.com accounts to surface meeting counts, durations, cancellation reasons, and no-show rates on a single analytics view inside your product.
- **Paid consultation setup at onboarding** — Create event types with price and currency fields pre-filled so marketplace or coaching platforms can instantly enable paid bookings for new providers without manual Cal.com configuration.

## FAQs

### What authentication method does the Cal.com integration use?

Cal.com supports API key-based authentication. Your end users provide their Cal.com API key, and Truto securely stores and manages it so your app never has to handle credentials directly.

### Which Cal.com resources can I read and write through Truto?

You get full CRUD on Schedules, Event Types, Teams, and Bookings (create and list). You can also list Calendars connected to a Cal.com account. These map to Truto's Unified Calendar API covering Availability, Calendars, Event Types, and Events.

### Can I create bookings on behalf of my end users' attendees?

Yes. The create_a_calcom_booking tool lets you specify the eventTypeId, start time, and attendee details, so your app can book meetings programmatically without the attendee visiting a Cal.com page.

### Does Truto handle pagination when listing bookings or event types?

Yes. Truto abstracts away Cal.com's pagination logic. When you call list endpoints like list_all_calcom_bookings or list_all_calcom_event_types, Truto manages cursor or page-based pagination automatically and returns consistent responses.

### Can I manage availability overrides like vacation days or blocked hours?

Yes. Cal.com schedules include date-specific overrides alongside regular weekly availability. You can read and write these overrides using the schedule CRUD tools (create, update, get, delete) to block dates or modify hours for specific days.

### How does the Unified Calendar API map to Cal.com-specific objects?

Truto's Unified Calendar API maps Availability to Cal.com Schedules, Calendars to connected Cal.com Calendars, Event Types directly to Cal.com Event Types, and Events to Cal.com Bookings. This lets you write integration code once and support additional scheduling tools later.

## Related reading

- [Connect Cal.com to ChatGPT: Manage Bookings and Availability via MCP](https://truto.one/blog/connect-calcom-to-chatgpt-manage-bookings-and-availability/) — Learn how to connect Cal.com to ChatGPT using a managed MCP server. Automate bookings, manage availability, and handle scheduling workflows with AI agents.
- [Connect Cal.com to Claude: Automate Scheduling Workflows](https://truto.one/blog/connect-calcom-to-claude-automate-scheduling-workflows/) — Learn how to connect Cal.com to Claude using a managed MCP server. Automate bookings, schedules, and team availability without writing integration code.
- [Connect Cal.com to AI Agents: Orchestrate Team Scheduling](https://truto.one/blog/connect-calcom-to-ai-agents-orchestrate-team-scheduling/) — Learn how to connect Cal.com to AI agents using Truto's tool-calling API. A developer guide to automating scheduling workflows with LangGraph and CrewAI.
