# Calendly — Pipedream Connect

> Schedule meetings without the hassle. Never get double booked. Calendly works with your calendar to automate appointment scheduling.

- API slug: `calendly_v2` (use in MCP headers and tool keys)
- Auth: OAuth (Pipedream-managed)
- Categories: Productivity
- Website: https://calendly.com
- This page (HTML): https://pipedream.com/apps/calendly-v2
- Tools: 12 actions · 4 triggers

## Connect via MCP (recommended)

- Endpoint: `https://remote.mcp.pipedream.net/v3`
- Headers: `Authorization: Bearer <token>` · `x-pd-project-id` · `x-pd-environment` · `x-pd-external-user-id` · `x-pd-app-slug: calendly_v2`

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "calendly_v2",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// e.g. run Cancel Event:
const result = await mcp.callTool({
  name: "calendly_v2-cancel-event",
  arguments: {
    eventUuid: "Event UUID",
    reason: "Reason",
  },
})
```

Docs: [MCP guide](https://pipedream.com/docs/connect/mcp/developers.md)

## API proxy

For a Calendly endpoint with no pre-built tool, the proxy forwards your request with the connected user's credentials attached.

```bash
# The path segment is the target URL, URL-safe base64 encoded:
# https://api.calendly.com/users/me

curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkuY2FsZW5kbHkuY29tL3VzZXJzL21l?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
  -H "Authorization: Bearer {access_token}" \
  -H "x-pd-environment: production"
```

Docs: [API proxy guide](https://pipedream.com/docs/connect/api-proxy.md)

## SDK

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "calendly_v2-cancel-event",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    calendly_v2: { authProvisionId: "apn_xxxxxxx" },
    eventUuid: "Event UUID",
    reason: "Reason",
  },
})
```

Docs: [Managed auth guide](https://pipedream.com/docs/connect/managed-auth/quickstart.md) · [Tools guide](https://pipedream.com/docs/connect/components.md)

## Actions (12)

### `calendly_v2-cancel-event` — Cancel Event (Write)

Cancel a scheduled Calendly event. Posts to POST /scheduled_events/{uuid}/cancellation. Run List Events first to obtain the event UUID. Example: with eventUuid set to a1b2c3d4-e5f6-7890-abcd-ef1234567890 and reason set to Schedule conflict - rescheduling needed, the event is canceled and all…

Full schema: https://pipedream.com/apps/calendly-v2/actions/cancel-event.md

### `calendly_v2-create-scheduling-link` — Create a Scheduling Link (Write)

Creates a single-use scheduling link for an event type via POST /scheduling_links. Run List Event Types first to obtain the event type UUID. Example: with owner set to https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA's UUID and maxEventCount set to 1, returns a booking URL like…

Full schema: https://pipedream.com/apps/calendly-v2/actions/create-scheduling-link.md

### `calendly_v2-create-invitee-no-show` — Create Invitee No Show (Write)

Marks an invitee as a no-show via POST /invitee_no_shows. Use when an invitee didn't attend a scheduled event and you want to flag it in Calendly. Run List Events first to obtain the event UUID, then select the invitee from the dropdown (populated from List Event Invitees). Example: with eventId…

Full schema: https://pipedream.com/apps/calendly-v2/actions/create-invitee-no-show.md

### `calendly_v2-get-event` — Get Event (Read-only)

Gets information about a scheduled event via GET /scheduled_events/{uuid}. Provide either the Event UUID (from List Events) or the full Event URL. Example: with eventId set to a1b2c3d4-e5f6-7890-abcd-ef1234567890, returns the event's name, start/end times, status, and location. See the…

Full schema: https://pipedream.com/apps/calendly-v2/actions/get-event.md

### `calendly_v2-get-invitee` — Get Event Invitee (Read-only)

Retrieve the full invitee resource (including email, name, status, reschedule_url, and no_show) via GET /scheduled_events/{event_uuid}/invitees/{invitee_uuid}. Use the returned reschedule_url to direct an invitee to self-reschedule. Run List Events to find event UUIDs, then List Event Invitees to…

Full schema: https://pipedream.com/apps/calendly-v2/actions/get-invitee.md

### `calendly_v2-list-event-invitees` — List Event Invitees (Read-only)

List the invitees for a scheduled event via GET /scheduled_events/{uuid}/invitees. Run List Events first to obtain the event UUID. Example: call with eventId set to a1b2c3d4-e5f6-7890-abcd-ef1234567890 and status set to active to return only that event's non-canceled invitees, each with a uri whose…

Full schema: https://pipedream.com/apps/calendly-v2/actions/list-event-invitees.md

### `calendly_v2-list-event-types` — List Event Types (Read-only)

Retrieve the event types available to a user or organization via GET /event_types. Use this to discover valid event type URIs and UUIDs for scheduling flows. Provide either an Organization URI or a User URI; if neither is provided the authenticated user is used. Use List Organization Memberships to…

Full schema: https://pipedream.com/apps/calendly-v2/actions/list-event-types.md

### `calendly_v2-list-events` — List Events (Read-only)

List scheduled Calendly events. Scope the results by providing at most one of Organization URI, User URI, or Group UUID; if none is provided, events for the authenticated user are returned (supplying more than one raises a configuration error). Narrow the results further with an invitee email to…

Full schema: https://pipedream.com/apps/calendly-v2/actions/list-events.md

### `calendly_v2-list-groups` — List Groups (Read-only)

List the groups within a Calendly organization via GET /groups (requires organization admin/owner privilege). Use this to discover valid Group UUIDs for scoping List Events to a specific group. Run List Organization Memberships first to obtain an organization URI. Example: call with organization…

Full schema: https://pipedream.com/apps/calendly-v2/actions/list-groups.md

### `calendly_v2-list-organization-members` — List Organization Memberships (Read-only)

List the members of a Calendly organization via GET /organization_memberships, returning each membership's user URI, role, and email. Use this as the companion lookup action for user and organization URIs consumed by other tools. Supports optional role and email filters plus pagination. Example…

Full schema: https://pipedream.com/apps/calendly-v2/actions/list-organization-members.md

### `calendly_v2-list-user-availability-schedules` — List User Availability Schedules (Read-only)

List the availability schedules of the given user via GET /user_availability_schedules. Run List Organization Memberships first to obtain a user URI. Example: call with user set to https://api.calendly.com/users/AAAAAAAAAAAAAAAA to return that user's named availability schedules (e.g. Working…

Full schema: https://pipedream.com/apps/calendly-v2/actions/list-user-availability-schedules.md

### `calendly_v2-list-webhook-subscriptions` — List Webhook Subscriptions (Read-only)

Get a list of Webhook Subscriptions for an Organization or User via GET /webhook_subscriptions. Requires organizationUri when scope is organization, or userUri when scope is user. Run List Organization Memberships first to obtain an organization or user URI. Example: call with scope set to…

Full schema: https://pipedream.com/apps/calendly-v2/actions/list-webhook-subscriptions.md

## Triggers (4)

### `calendly_v2-new-event-scheduled` — New Event Scheduled (Polling)

Emit new event when a event is scheduled.

Full schema: https://pipedream.com/apps/calendly-v2/triggers/new-event-scheduled.md

### `calendly_v2-invitee-canceled` — New Invitee Canceled (Instant)

Emit new event when an event is canceled.

Full schema: https://pipedream.com/apps/calendly-v2/triggers/invitee-canceled.md

### `calendly_v2-invitee-created` — New Invitee Created (Instant)

Emit new event when a new event is scheduled.

Full schema: https://pipedream.com/apps/calendly-v2/triggers/invitee-created.md

### `calendly_v2-routing-form-submission-created` — New Routing Form Submission Created (Instant)

Emit new event when a new routing form submission is created.

Full schema: https://pipedream.com/apps/calendly-v2/triggers/routing-form-submission-created.md

---

- All apps: https://pipedream.com/apps — index: https://pipedream.com/llms.txt
- Pipedream docs for agents: https://pipedream.com/docs/llms.txt
