Skip to content

Scheduling

Calendly
API integration

Ship Scheduling features without building the integration. Full Calendly API access via Proxy, normalized data through Unified APIs, and 50+ MCP-ready tools for AI agents — all extensible to your exact use case.

Talk to us
Calendly

Use Cases

Why integrate with Calendly

Common scenarios for SaaS companies building Calendly integrations for their customers.

01

Auto-log booked meetings against CRM contacts

CRM and sales platforms integrate Calendly so that when a prospect books a demo or discovery call, the event details—time, duration, invitee responses—are automatically logged on the contact record without manual data entry.

02

Embed scheduling links inside outreach sequences

Sales engagement and email sequencing tools fetch a rep's Calendly event types so they can insert the right booking link into automated cadences, and pause the sequence automatically once a meeting is booked.

03

Trigger candidate pipeline updates on interview booking

Applicant tracking systems use Calendly event data to move candidates through hiring stages—updating status to 'Interview Scheduled' the moment a candidate picks a time slot, keeping the pipeline accurate in real time.

04

Surface scheduling inside customer onboarding checklists

Client onboarding and customer success platforms pull the assigned manager's Calendly availability and event types directly into the portal, letting new customers book their kickoff call without leaving the product.

05

Map Calendly users to internal tenant accounts

Multi-tenant SaaS products need to associate each end-user's Calendly identity with the correct internal account for accurate attribution, routing, and access control across their platform.

What You Can Build

Ship these features with Truto + Calendly

Concrete product features your team can ship faster by leveraging Truto’s Calendly integration instead of building from scratch.

01

In-app meeting link picker

Fetch a user's Calendly event types and render them in a dropdown so they can insert the exact booking link—15-min intro, 30-min demo—directly into an email composer or chat message.

02

Real-time event sync to contact timeline

Listen for new Calendly bookings and cancellations via webhooks and automatically append event details, invitee custom question responses, and meeting links to a contact or candidate's activity timeline.

03

Availability-aware scheduling UI

Query a user's Calendly availability windows and display open time slots natively inside your product, so invitees never have to leave your app to find a meeting time.

04

Automated sequence pause on booking

When a Calendly event is created, automatically pause or exit the prospect from an active outreach sequence to prevent awkward follow-up emails after they've already scheduled a call.

05

User-to-account mapping dashboard

Pull Calendly user profiles—email, scheduling URL, and avatar—via the Unified User Directory API to let admins map each team member's Calendly account to the correct internal seat or workspace.

06

Onboarding intake auto-fill from invitee responses

Capture custom question answers from Calendly event payloads and pre-populate onboarding forms, CRM fields, or intake documents so customers never have to re-enter information they already provided when booking.

SuperAI

Calendly AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_calendly_organization_memberships

List Calendly organization memberships, filterable by organization_id, user, email, or role. Returns: uri, role, user, organization, updated_at, created_at. Requires either user or organization_id to filter results.

get_single_calendly_organization_membership_by_id

Get a single Calendly organization membership by id. Returns: uri, role, user, organization, updated_at, created_at. Required: id.

delete_a_calendly_organization_membership_by_id

Remove a user from a Calendly organization by membership id. An organization owner cannot be removed. Returns an empty 204 response on success. Required: id.

get_single_calendly_user_by_id

Get information about a specified Calendly user by id. Returns: uri, name, email, scheduling_url, timezone, avatar_url, created_at, updated_at. Required: id.

get_single_calendly_organization_by_id

Get a single Calendly organization by id. Returns: uri, created_at, updated_at. Required: id.

list_all_calendly_organizations

List Calendly organizations by label. Returns: uri, created_at, updated_at. Required: label.

list_all_calendly_activity_log_entries

List Calendly activity log entries for an organization, filterable by action, actor, namespace, date range, and search term. Returns: occurred_at, uri, namespace, action, actor, fully_qualified_name, details, organization. Required: organization_id. Enterprise subscription required.

list_all_calendly_user_busy_times

List Calendly user busy times (internal and external scheduled events) within a specified date range. Returns: type, start_time, end_time, buffered_start_time, buffered_end_time, event. Required: user, start_time, end_time. Date range cannot exceed 7 days and this endpoint does not support traditional keyset pagination.

list_all_calendly_event_types

List Calendly event types for a specified user or organization. Returns: uri, name, active, booking_method, slug, scheduling_url, duration, duration_options, kind, pooling_type, type, color, created_at, updated_at, internal_note, is_paid, description_plain, description_html, profile, secret, deleted_at, admin_managed, locations, position, custom_questions, locale. Required: organization or user…

get_single_calendly_event_type_by_id

Get a single Calendly event type by id. Returns the full event type object including uri, name, active, scheduling_url, duration, kind, color, profile, locations, custom_questions, created_at, and updated_at. Required: id.

create_a_calendly_event_type

Create a new Calendly event type. Returns the created event type object including uri, name, active, duration, scheduling_url, kind, type, color, booking_method, slug, created_at, updated_at, and configuration details for locations, custom questions, and profile.

update_a_calendly_event_type_by_id

Update a Calendly event type by id. Returns the updated event type including uri, name, active, duration, scheduling_url, color, kind, custom_questions, and locations. Required: id.

list_all_calendly_scheduled_events

List Calendly scheduled events, optionally filtered by organization, user, group, invitee email, status, or start-time range. Returns: uri, name, meeting_notes_plain, meeting_notes_html, status, start_time, end_time, event_type, location, invitees_counter, created_at, updated_at, event_memberships, event_guests, cancellation, calendar_event. Max 100 per page.

get_single_calendly_scheduled_event_by_id

Get a single Calendly scheduled event by id. Returns the full event object including uri, name, status, start_time, end_time, event_type, location, invitees_counter, created_at, updated_at, event_memberships, event_guests, and calendar_event. Required: id.

calendly_scheduled_events_cancellation

Cancel a Calendly scheduled event by uuid, optionally providing a reason. Returns: reason, created_at. Required: uuid.

list_all_calendly_event_invitees

List invitees for a Calendly scheduled event. Returns: uri, email, first_name, last_name, name, status, questions_and_answers, timezone, event, created_at, updated_at, tracking, text_reminder_number, rescheduled, old_invitee, new_invitee, cancel_url, reschedule_url, routing_form_submission, cancellation, payment, no_show, reconfirmation, scheduling_method, invitee_scheduled_by. Required: event_id.

list_all_calendly_contacts

List Calendly contacts with optional filters. Returns: uri, email, company, job_title, city, timezone, created_at, updated_at.

get_single_calendly_contact_by_id

Get a single Calendly contact by id. Returns: uri, email, company, job_title, city, timezone, created_at, updated_at. Required: id.

create_a_calendly_contact

Create a new Calendly Contact. Returns the created contact object including uri, email, company, job_title, city, timezone, created_at, and updated_at. Required: email.

update_a_calendly_contact_by_id

Update an existing Calendly Contact by id. Returns: uri, email, company, job_title, city, timezone, created_at, updated_at. Required: id.

delete_a_calendly_contact_by_id

Delete a Calendly Contact by id. Returns an empty 204 response on success. Required: id.

delete_a_calendly_deletion_invitee_by_id

Submit a request to delete Calendly invitee data for data compliance purposes such as GDPR. The deletion is processed asynchronously. Returns an empty 202 response on success. Required: emails.

list_all_calendly_event_type_availability_schedules

List Calendly event type availability schedules. Returns: event_type, availability_setting, availability_rule. Required: event_type.

calendly_event_type_availability_schedules_bulk_update

Update a Calendly event type availability schedule. Returns: event_type, availability_setting, availability_rule. Required: event_type, availability_rule with timezone. Updating rules overwrites all existing rules for the event type.

list_all_calendly_event_type_available_times

List available time slots for a Calendly event type within a specified date range. Returns: status, invitees_remaining, start_time, scheduling_url. Required: event_type, start_time, end_time.

list_all_calendly_event_type_memberships

List event type hosts for a specific Calendly event type. Returns each membership's uri, event_type, member, created_at, and updated_at. Required: event_type (the event type URI).

list_all_calendly_group_relationships

List group relationships (group memberships) in Calendly, showing which users belong to which groups within an organization. Returns: uri, group, user, organization, created_at, updated_at. Required: organization.

list_all_calendly_groups

List Calendly groups within a specified organization, used for organizing users into teams for scheduling. Returns: uri, organization, created_at, updated_at. Required: organization.

get_single_calendly_invitee_no_show_by_id

Get a Calendly invitee no-show by id. Returns: uri, invitee, created_at. Required: id.

create_a_calendly_invitee_no_show

Mark a Calendly invitee as a no-show. Pass the full invitee URI (not a bare UUID) in the request body as `invitee`. Returns the created no-show object including uri, invitee, and created_at. Required: invitee (full URI).

calendly_invitee_no_shows_bulk_delete

Remove no-show status from a Calendly invitee. Returns an empty 204 response on success. Required: uuid.

create_a_calendly_invitee

Create a Calendly invitee for a scheduled event, booking a meeting on behalf of the invitee via the Scheduling API without redirects or the Calendly-hosted UI. Returns: email, name, questions_and_answers, timezone, created_at, updated_at. Required: event_type, start_time, invitee (with name and email). Requires a paid Calendly plan.

list_all_calendly_locations

List configured meeting locations in Calendly. Returns a collection of location configuration objects including kind, phone_number, additional_info, and location.

list_all_calendly_meeting_recaps

List Calendly meeting recaps with optional filters for event, user, organization, attendee, and meeting start time range. Returns: uri, summary, action_items, discussion, meeting_notes, event, user, organization, start_time, attendees, created_at, updated_at.

get_single_calendly_meeting_recap_by_id

Get a single Calendly meeting recap by id, including highlights (summary, action items, discussion) and meeting metadata. Returns: uri, summary, action_items, discussion, meeting_notes, event, user, organization, start_time, attendees, created_at, updated_at. Required: id.

update_a_calendly_meeting_recap_by_id

Update a Calendly meeting recap's highlights by id — summary, action items, and discussion notes. Returns: uri, summary, action_items, discussion, meeting_notes, event, user, organization, start_time, attendees, created_at, updated_at. Required: id.

delete_a_calendly_meeting_recap_by_id

Delete a Calendly meeting recap by id. Returns an empty 204 response on success. Required: id.

calendly_meeting_recaps_get_transcript

Get the full transcript for a Calendly meeting recap. Returns: uri, recap, created_at. Required: recap_uuid.

create_a_calendly_one_off_event_type

Create a single-use one-off event type in Calendly for a one-time scheduling session. Returns the created event type including its uri, name, scheduling_url, duration, active, kind, type, and locations. Required: name, host, duration, date_setting. One-off event types are not listed on the user's scheduling page.

list_all_calendly_organization_invitations

List organization invitations in Calendly. Returns: uri, email, status, created_at, updated_at. Required: uuid. The status filter accepts pending, accepted, or declined.

create_a_calendly_organization_invitation

Invite a user to a Calendly organization by email address. The invitee receives an email with instructions to accept. Returns: uri, email, status, created_at, updated_at. Required: uuid, email.

calendly_organization_invitations_bulk_delete

Revoke a pending Calendly organization invitation. The invitee will no longer be able to accept the invitation. Returns an empty 204 response on success. Required: org_uuid, invitation_uuid.

list_all_calendly_organization_invitations_organizations

Get detailed information about a specific Calendly organization invitation. Returns: uri, email, status, created_at, updated_at. Required: org_uuid, invitation_uuid.

list_all_calendly_outgoing_communications

List outgoing SMS and email communications in Calendly. Returns outgoing communication records with type-specific fields. No required parameters.

list_all_calendly_routing_form_submissions

List Calendly routing form submissions for a specific routing form, including the answers provided by each submitter. Returns: uri, routing_form, questions_and_answers, tracking, created_at, updated_at. Required: routing_form.

get_single_calendly_routing_form_submission_by_id

Get a single Calendly routing form submission by id. Returns the full submission object including uri, routing_form, questions_and_answers, tracking, created_at, and updated_at. Required: id.

list_all_calendly_routing_forms

List Calendly routing forms for an organization. Routing forms are questionnaires that direct invitees to the appropriate scheduling page based on their responses. Returns: uri, created_at, updated_at, questions, routing_rules. Required: organization.

get_single_calendly_routing_form_by_id

Get a specific Calendly routing form by id. Returns detailed information about the form including its uri, created_at, updated_at, questions, and routing_rules. Required: id.

list_all_calendly_scheduled_event_invitees

Get a specific Calendly event invitee by event and invitee UUID. Returns: uri, email, first_name, last_name, name, status, questions_and_answers, timezone, event, created_at, updated_at, tracking, text_reminder_number, rescheduled, old_invitee, new_invitee, cancel_url, reschedule_url, routing_form_submission, cancellation, payment, no_show, reconfirmation, scheduling_method, invitee_scheduled_by.…

create_a_calendly_scheduling_link

Create a single-use scheduling link for a Calendly event type. Returns: booking_url, owner, owner_type. Required: max_event_count, owner, owner_type.

create_a_calendly_share

Create a shareable scheduling link in Calendly from an existing event type. Returns: booking_url, owner, owner_type. Required: event_type.

list_all_calendly_user_availability_schedules

List Calendly user availability schedules for a specific user. Availability schedules define recurring time windows when a user is available for meetings. Returns: uri, name, user, timezone, rules. Required: user.

get_single_calendly_user_availability_schedule_by_id

Get a single Calendly user availability schedule by its id, including the timezone and rules that define available time windows. Returns: uri, name, user, timezone, rules. Required: id.

list_all_calendly_users_me

Get information about the currently authenticated Calendly user. Returns: uri, name, slug, email, scheduling_url, timezone, time_notation, avatar_url, created_at, updated_at, current_organization, resource_type, locale.

list_all_calendly_webhook_subscriptions

List Calendly webhook subscriptions for a user or organization. Returns: uri, callback_url, created_at, updated_at, retry_started_at, state, events, scope, organization, user, creator, signing_key. Required: organization, scope.

create_a_calendly_webhook_subscription

Create a new Calendly webhook subscription to receive real-time scheduling event notifications. Returns: uri, callback_url, created_at, updated_at, retry_started_at, state, events, scope, organization, user, creator, signing_key. Required: url, events, organization, scope.

get_single_calendly_webhook_subscription_by_id

Get a single Calendly webhook subscription by id. Returns: uri, callback_url, created_at, updated_at, retry_started_at, state, events, scope, organization, user, creator, signing_key. Required: id.

delete_a_calendly_webhook_subscription_by_id

Delete a Calendly webhook subscription by id. Returns an empty 204 response on success. Required: id.

calendly_webhook_subscriptions_get_sample_data

Get sample Calendly webhook payload data for testing a subscription. Returns: event, created_at, created_by, payload. Required: event, organization, scope.

Why Truto

Why use Truto’s MCP server for Calendly

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 650+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

Unified APIs

Unified APIs for Calendly

Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.

Unified User Directory API

Licenses

Licenses represent concepts like user seats in apps that support them

View Docs

Roles

The Role object represents a role of a User.

View Docs

Users

The User object represents a User.

View Docs

Unified Calendar API

Availability

Represents the availability of a person in a time period.

View Docs

Event Types

View Docs

Events

Events are the time-bound tasks that are associated with a calendar.

View Docs

How It Works

From zero to integrated

Go live with Calendly in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Calendly account

Use Truto’s frontend SDK to connect your customer’s Calendly account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Calendly

Truto’s Proxy API is a 1-to-1 mapping of the Calendly API. You call us, we call Calendly, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Calendly’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Calendly on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

What authentication method does the Calendly integration use?

Calendly supports OAuth 2.0 for user-level authorization. Truto handles the full OAuth flow—token exchange, storage, and refresh—so your team never manages credentials directly.

Which Truto Unified APIs cover Calendly?

Calendly is mapped to the Unified Calendar API (Availability, Event Types, Events) and the Unified User Directory API (Users, Licenses). These let you read scheduling data and user profiles through a consistent schema across multiple scheduling tools.

How do I get real-time updates when meetings are booked or canceled?

Calendly supports webhooks for events like invitee.created and invitee.canceled. Subscribing to these through the integration gives you near-instant notifications, which is far more efficient than polling the scheduled events endpoint.

Can I access custom question responses submitted by invitees?

Yes. When an invitee books a meeting and fills out custom questions (e.g., company size, use case), those responses are included in the event payload. You can use this data to enrich contact profiles or auto-fill forms in your product.

Does the integration handle Calendly's API rate limits and pagination?

Truto manages rate-limit handling and pagination automatically. Your application makes straightforward requests through the Unified API, and Truto takes care of retries, backoff, and cursor-based pagination behind the scenes.

What if I need a Calendly capability that isn't covered by the current Unified APIs?

Truto builds additional tools and resource mappings on request. If you need access to specific Calendly endpoints—like single-use scheduling links or Round Robin configuration—reach out and the Truto team can add support.

Calendly

Get Calendly integrated into your app

Our team understands what it takes to make a Calendly integration successful. A short, crisp 30 minute call with folks who understand the problem.