View as Markdown

Calendly Integration

Manage Calendly user profiles, event types, scheduled events, invitees, and availability schedules

The Calendly integration provides access to manage Calendly user profiles, event types, scheduled events, invitees, and availability schedules through the Integrate MCP server.

Installation

The Calendly integration is included with the SDK:

import { calendlyIntegration } from "integrate-sdk/server";

Setup

1. Create a Calendly OAuth App

  1. Create an OAuth application for Calendly
  2. Configure your redirect URI
  3. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Calendly integration to your server configuration. The integration automatically reads CALENDLY_CLIENT_ID and CALENDLY_CLIENT_SECRET from your environment variables:

import { createMCPServer, calendlyIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    calendlyIntegration({
      scopes: ["user:read", "event_types:read", "scheduled_events:read", "organization_memberships:read", "routing:read"], // Optional
    }),
  ],
});

You can override the environment variables by passing explicit values:

calendlyIntegration({
  clientId: process.env.CUSTOM_CALENDLY_ID,
  clientSecret: process.env.CUSTOM_CALENDLY_SECRET,
      scopes: ["user:read", "event_types:read", "scheduled_events:read", "organization_memberships:read", "routing:read"], // Optional
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("calendly");
const result = await client.calendly.getCurrentUser({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, calendlyIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [calendlyIntegration()],
});

Configuration Options

export interface CalendlyIntegrationConfig {
  clientId?: string;

Default Scopes

These defaults are applied unless you override scopes in the integration config:

  • user:read
  • event_types:read
  • scheduled_events:read
  • organization_memberships:read
  • routing:read

Tools

calendly_get_current_user

Get current user

No parameters.

calendly_list_event_types

List event types

export interface CalendlyListEventTypesParams {
    "organization"?: string;

calendly_get_event_type

Get event type

export interface CalendlyGetEventTypeParams {
    "event_type_uuid": string;

calendly_list_scheduled_events

List scheduled events

export interface CalendlyListScheduledEventsParams {
    "organization"?: string;

calendly_get_scheduled_event

Get scheduled event

export interface CalendlyGetScheduledEventParams {
    "scheduled_event_uuid": string;

calendly_list_scheduled_event_invitees

List scheduled event invitees

export interface CalendlyListScheduledEventInviteesParams {
    "scheduled_event_uuid": string;

calendly_list_availability_schedules

List availability schedules

export interface CalendlyListAvailabilitySchedulesParams {
    "user"?: string;

Notes

  • Category: Scheduling
  • Authentication mode: OAuth