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
- Create an OAuth application for Calendly
- Configure your redirect URI
- 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:readevent_types:readscheduled_events:readorganization_memberships:readrouting: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