otherapi_key

Cal

Cal simplifies meeting coordination by providing shareable booking pages, calendar syncing, and availability management to streamline the scheduling process

Verdict

Cal is a scheduling platform that handles bookings, team calendars, and availability checks. The MCP exposes 50 tools that let you create, cancel, and reschedule meetings, check calendar free/busy slots, manage team memberships, and verify integrations like Google Calendar or Stripe — all from inside a Space. Most useful for ops teams coordinating client calls, support leads triaging meeting requests, or anyone who books meetings through chat and wants to skip the browser tab. Auth requires an API key from your Cal dashboard. The MCP can't access private event details, only availability windows.

Common use cases

  • Cancel client bookings from Slack threads
  • Check team availability before proposing times
  • Add new hires to scheduling rotation
  • Verify Stripe payment setup for paid calls
  • Audit Google Calendar sync status

Integration

Vendor
Cal
Category
other
Auth
API_KEY
Tools
50
Composio slug
cal

Tools

  • Add member to team

    Adds a new member to a specified team within an organization by creating a team membership.

  • Add organization attribute option

    Adds a new option to an organization's attribute, requiring a display `value` and a `slug` unique for that attribute.

  • Cancel booking via uid

    Cancels an existing and active cal.com booking using its unique identifier (uid).

  • Check calendar availability

    Retrieves free/busy availability for a specified calendar to aid scheduling without revealing event details; requires an existing, accessible calendar, noting that data granularity can vary.

  • Check gcal synchronization status

    Call this read-only action to verify the connection and synchronization status of a user's google calendar integration with cal.

  • Check ics feed calendar endpoint

    Checks an ics feed url (expected as a query parameter) to verify its validity, accessibility, and icalendar data integrity.

  • Check Stripe status

    Verifies if stripe is correctly connected to the cal scheduling system and functional for processing payments, reporting only on the integration's status.

  • Check team stripe integration status

    Retrieves the stripe integration status and related information for a team, primarily to verify account connection, subscription details, or payment setup; this is a read-only operation that does not modify stripe settings.

  • Confirm booking by uid

    Confirms an existing booking by `bookinguid` if the booking exists and is in a state allowing confirmation (e.g., not already cancelled or confirmed); this finalizes the booking, does not modify its details, and should typically be performe

  • Connect to calendar

    Initiates or checks the external connection status for a specified calendar, possibly returning a redirect url for user authorization to complete integration, without altering calendar data.

  • Create membership for organization

    Creates a new membership or updates an existing one for a user within an organization; the user specified by userid must already exist in the system.

  • Create oauth client user

    Creates a new managed user for an oauth client, setting profile and scheduling preferences; if `timezone` is not provided, a default schedule (mon-fri, 9am-5pm) is not created, requiring manual setup via `/schedules` endpoint before booking

  • Create OAuth client webhook configuration

    Creates a webhook for an existing oauth client to send real-time cal.com event notifications (e.g., `booking created`, `meeting ended`) to the `subscriberurl`, enabling integration with external systems or workflow automation.

  • Create organization attributes

    Creates a new custom attribute for an existing organization, used to enhance data collection for event bookings or user profiles.

  • Create organization webhook by org ID

    Creates a webhook for a specified, existing organization, sending notifications for selected trigger events to a designated, publicly accessible subscriber url that accepts post requests.

  • Create or update team profile

    Creates a new team profile, or updates one if a 'slug' matches, customizing branding, scheduling, privacy, and operational details.

  • Create phone call event

    Schedules a phone call event in cal.com using existing eventtype, organization, and team ids; this action only registers the event details and does not initiate the actual phone call.

  • Create phone call for event type

    Creates a phone call template associated with an existing event type and team, for defining reusable call configurations like numbers and scripts; note this does not initiate an actual call.

  • Create team event type

    Creates a new event type for a specified team in cal.com; ensure `teamid`, any provided `scheduleid`, `hosts.userid`, and `destinationcalendar` details are valid and accessible.

  • Create team event types with custom options

    Creates a highly customizable cal.com team event type with extensive scheduling, booking, and host assignment options; `lengthinminutes` (as string) must be included in `lengthinminutesoptions`, destination calendar details (from `/api/v2/c

  • Create team in organization

    Creates a new team with customizable attributes within an existing and accessible cal.com organization specified by orgid.

  • Create team membership with role

    Adds a user to a team with a specified role, acceptance status, and impersonation settings; ensure `teamid` and `userid` refer to existing, valid entities.

  • Create user availability schedule

    Creates a cal.com user availability schedule, defining its name, timezone, weekly recurring availability, and specific date overrides; if `isdefault` is true, this schedule replaces any existing default and applies to event types not linked

  • Create user schedule in organization

    Creates a new schedule defining a user's availability with weekly slots and date-specific overrides in an organization; setting 'isdefault' to true may replace an existing default schedule for the user.

  • Create webhook for event type

    Creates a webhook for an existing `eventtypeid` in cal.com, sending notifications for specified `triggers` to a `subscriberurl` that handles post requests.

  • Decline booking with reason

    Declines a pending booking using its bookinguid, optionally with a reason; this action is irreversible and applies only to bookings awaiting confirmation.

  • Delete conference app connection
    destructive

    Disconnects the specified conferencing application (e.g., 'zoom', 'google meet') for the cal.com account, immediately terminating any ongoing call or meeting; use with caution.

  • Delete event type by id
    destructive

    Permanently deletes an existing event type by its id, which invalidates its scheduling links; the operation is irreversible, and while existing bookings are unaffected, no new bookings can be made for this event type.

  • Delete event type in team
    destructive

    Permanently removes an event type's configuration from a team's scheduling options (e.g., for cleanup); this action is irreversible and requires the event type to be associated with the team.

  • Delete membership in team
    destructive

    Use to permanently remove a user's membership from a specific team within an organization, which revokes their team-associated access but does not remove them from the organization.

  • Delete oauth client user
    destructive

    Irreversibly revokes a specific user's association with a given oauth client, without deleting the user's cal account.

  • Delete oauth client webhook
    destructive

    Permanently deletes a specific webhook subscription of an oauth client in the cal application, stopping its notifications.

  • Delete organization attribute
    destructive

    Permanently deletes an existing attribute (specified by `attributeid`) from an existing organization (specified by `orgid`); this action is irreversible and may affect features dependent on the attribute.

  • Delete organization attribute option
    destructive

    Permanently deletes a specified option from an organization's attribute, typically to remove an unnecessary configuration choice.

  • Delete organization membership
    destructive

    Irreversibly deletes a user's membership from an organization, removing all associated access and permissions; the response confirms deletion without returning details of the deleted membership.

  • Delete org webhook
    destructive

    Permanently deletes an organization's webhook, which stops all its notifications; this action is irreversible and the webhook cannot be recovered.

  • Delete schedule by id
    destructive

    Permanently deletes a specific schedule using its unique identifier, which must correspond to an existing schedule.

  • Delete selected calendars
    destructive

    Removes a specified, currently selected calendar from the user's active list within the application, without deleting it from the external provider.

  • Delete selected slot
    destructive

    Deletes a previously selected time slot from the cal schedule using its `uid`; the slot must exist and this action is irreversible.

  • Delete team by id
    destructive

    Permanently and irreversibly deletes an existing team and all its associated data from the cal system, using the team's unique `teamid`.

  • Delete team from organization
    destructive

    Permanently and irreversibly deletes a specific team (and all its associated data, members, and linked projects/events) from an organization, when the team is no longer needed or during organizational restructuring.

  • Delete team memberships by id
    destructive

    Irreversibly removes a user's team membership in the cal application, revoking access to that specific team; the user's overall cal account remains active.

  • Delete user attribute option
    destructive

    Removes a custom attribute option (e.g., skill, role) currently assigned to a user within an organization; this operation is irreversible.

  • Delete user from organization
    destructive

    Permanently removes a user from a specific organization (user's system-wide account is unaffected), revoking their access rights therein; this action is irreversible via api and expects the user to be a current member.

  • Delete user schedule
    destructive

    Permanently deletes a specific user's schedule, provided the organization, user, and schedule (identified by `orgid`, `userid`, and `scheduleid`) exist.

  • Delete webhook by id
    destructive

    Permanently deletes an existing webhook by its `webhookid`, stopping future notifications; this action is irreversible.

  • Delete webhook for event type
    destructive

    Permanently deletes a specific webhook for an event type, halting its real-time notifications; this operation is irreversible and leaves the event type and other webhooks untouched.

  • Delete webhooks for event type
    destructive

    Call this to irreversibly delete all webhooks for a specific `eventtypeid` if the event type exists; details of deleted webhooks are not returned.

  • Disconnect calendar using credential id

    Disconnects a calendar integration by its provider name and credential id, irreversibly revoking cal's access; external calendar data remains unaffected.

  • Fetch all bookings

    Fetches a list of bookings, optionally filtered by status, attendee, date range, or by event/team ids (which must belong to/include the authenticated user respectively), with support for pagination and sorting.

Setup

Setup guide

  1. 11. Open your Switchy workspace and navigate to Settings > Integrations > MCP Servers. 2. Click 'Add MCP Server' and select Cal from the directory. 3. You'll be prompted to paste an API key — generate one by logging into your Cal account, going to Settings > Developer > API Keys, and creating a new key with read/write permissions. 4. Paste the key into Switchy and click 'Connect'. 5. Switchy will verify the connection by pinging Cal's API; you'll see a green checkmark when it succeeds. 6. Open any Space and type '@Cal check my calendar availability' to test — the MCP should return your free/busy slots for today. 7. If the test fails, double-check the API key hasn't expired and that your Cal account has active calendars linked.

What teammates see: by default, memories from Cal are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.

Works well with

Top models

Compatibility data appears once enough Spaces have used this MCP together with a given model.

How Switchy teams use it

Not enough Spaces yet to publish anonymised usage stats (we require ≥ 50 Spaces per week).

Starter prompts

Cancel Meeting

@Cal cancel the booking with uid abc123xyz. Send a cancellation notice to the attendee.
Open in a Space →

Check Availability

@Cal check availability for my main calendar tomorrow between 9am and 5pm Pacific. Show me open slots.
Open in a Space →

Add Team Member

@Cal add jordan@example.com to the Support Team. Grant them standard member permissions.
Open in a Space →

Verify Stripe

@Cal check if Stripe is connected and active for my account. Report any issues with the payment setup.
Open in a Space →

Audit Google Sync

@Cal verify the Google Calendar sync status for my account. Tell me if any calendars are out of date.
Open in a Space →

Example outputs

Illustrative - representative of the model's voice and quality, not literal recordings.

Prompt

@Cal show me my calendar availability for the next 3 days and highlight any gaps longer than 2 hours

Output

Based on your Cal.com calendar, here's your availability over the next 72 hours: Tomorrow (Jan 15) you have a 3-hour gap from 10am-1pm and another 2.5-hour window from 3:30pm-6pm. Wednesday shows back-to-back meetings until 4pm, then you're free until end of day. Thursday morning is completely open until your 11am standup. All times reflect your connected calendar's free/busy data—private event details remain hidden.

Notes

This example uses Cal's availability-checking tool to surface scheduling opportunities. The MCP returns free/busy blocks without exposing event titles or attendees. Requires read access to the calendar integration (Google Calendar, Outlook, etc.). Granularity depends on how the user's calendar sync is configured—some setups only show hourly blocks.

Prompt

@Cal cancel my 2pm booking today with uid cal_abc123xyz and send the standard cancellation notice

Output

Booking cal_abc123xyz (2pm meeting with Jordan Lee) has been cancelled. Cal.com sent cancellation emails to all attendees and removed the event from connected calendars. The time slot is now available for rebooking. Note: This action is immediate and cannot be undone through the MCP—you'd need to recreate the booking manually if this was a mistake.

Notes

Demonstrates Cal's write capability for managing bookings. The uid must reference an active, future booking owned by the authenticated user. This is a destructive action with immediate side effects: emails are sent, calendar events deleted, and any payment holds released. No confirmation prompt—the cancellation executes as soon as the MCP processes the request.

Prompt

@Cal add sarah.chen@example.com to our 'Design Reviews' team with member role, then summarize who's on that team now

Output

Sarah Chen has been added to the Design Reviews team with member-level permissions. She can now book and be booked through team event types but cannot modify team settings. Current roster: 6 members total—3 with admin rights (you, Mike Torres, Alex Kim) and 3 standard members (Sarah Chen, Jordan Park, Casey Liu). The team's Stripe integration is active, so Sarah's bookings will route through your existing payment setup if applicable.

Notes

Showcases both a write action (adding a team member) and a follow-up read (listing the roster). Requires organization-level API access—standard user keys can't modify team membership. The MCP confirms the addition but doesn't validate the email address beforehand; Cal.com will send an invitation that the new member must accept. Be aware this grants immediate booking access to shared calendars.

Use-case deep-dives

Client onboarding at consulting firm

When Cal MCP automates intake scheduling for 6-person teams

A 6-person consulting firm runs discovery calls with 40+ prospects monthly. The Cal MCP wins here because it lets Switchy agents book those calls, cancel no-shows, and check calendar availability without leaving the chat thread. The team uses 'cancel booking via uid' when a prospect reschedules via email, and 'check calendar availability' to propose three slots in one message instead of the usual back-and-forth. The auth is straightforward—one API key covers the whole team. The trade-off: if your firm runs complex multi-stakeholder scheduling (three consultants plus the client's VP), Cal's tooling gets clunky and you're better off with a dedicated scheduling link. But for single-host intake calls where speed matters, this MCP cuts booking overhead by half.

Support team knowledge base sync

Cal MCP is the wrong tool for support workflows

A 4-person support team wants to surface customer meeting history during ticket triage. The Cal MCP doesn't help here—it's built for scheduling actions, not meeting transcript search or CRM lookups. The 50 tools skew heavily toward calendar management (add team members, check Stripe status, verify ICS feeds) rather than content retrieval. If your workflow is 'find the notes from last Tuesday's call with Acme Corp,' you need a different MCP that indexes meeting transcripts or integrates with your CRM. Cal shines when the job is booking or canceling, not when it's digging through past event data. Save the API key slot for a tool that matches the actual query pattern your support agents run daily.

Fractional CFO billing reconciliation

When Cal's Stripe check matters for finance ops

A fractional CFO manages billing for three SaaS clients, each using Cal for paid consultation bookings. The 'check Stripe status' and 'check team Stripe integration status' tools let the CFO verify payment setup during month-end close without logging into three separate Cal dashboards. Switchy agents pull Stripe connection health in the same thread where the CFO is reconciling Stripe payouts against booked hours. The MCP's API key auth means one credential covers all three client accounts if they're under the same org structure. The boundary: if your clients are on separate Cal organizations, you'll need multiple API keys and the setup friction climbs. For single-org fractional work where payment verification is a recurring 10-minute task, this MCP turns it into a 30-second agent query.

Frequently asked

What does the Cal MCP let Switchy do with my scheduling?

It connects Switchy to your Cal.com account so AI agents can book meetings, cancel appointments, check calendar availability, and manage team members. You get 50 tools covering everything from creating bookings to verifying Stripe payment status. Agents can read your schedule and execute actions like a human admin would through Cal's dashboard.

Do I need admin access to connect Cal MCP to Switchy?

You need a Cal.com API key, which typically requires account owner or admin permissions to generate. The key grants access to your entire Cal workspace, including team management and payment integrations. If you only want read-only calendar checks, Cal doesn't offer scoped keys — it's all-or-nothing access.

Can the Cal MCP create new event types or modify booking rules?

The MCP focuses on booking operations and team management, not event type configuration. It can book into existing event types and manage team memberships, but you'll still configure availability windows, buffer times, and booking limits directly in Cal's interface. Think of it as execution layer, not setup layer.

Why use this instead of just sharing my Cal link with the team?

A shared link lets people book you. This MCP lets AI agents book on your behalf, cancel no-shows, check conflicts across multiple calendars, and manage team scheduling programmatically. If your workflow is 'send link, wait for bookings', stick with that. If you're coordinating schedules or automating rescheduling, the MCP saves hours.

Who on my team should connect the Cal integration?

Whoever owns your Cal.com workspace and has API key access. That's usually the account admin or office manager. Once connected in Switchy, any team member can ask agents to check availability or book meetings through your shared Cal setup. The API key itself stays with the connecting user.

Data last verified 607 hours ago.Sources aggregated hourly to weekly. See docs/architecture/model-directory.md.