Skip to main content

Quick Start

Install the plugin:
pnpm install @corsair-dev/calendly
Add the Calendly plugin to your Corsair instance:
corsair.ts
import { createCorsair } from "corsair";
import { calendly } from "@corsair-dev/calendly";

export const corsair = createCorsair({
    plugins: [calendly()],
    database: db,
    kek: process.env.CORSAIR_KEK!,
});

Authentication

Supported Auth Types

  • api_key (default) - Personal access token

API Key Setup

pnpm corsair setup --calendly api_key=your-personal-access-token
For webhook signature verification:
pnpm corsair setup --calendly webhook_signature=your-signing-key
See Get Credentials for step-by-step instructions.

Options

OptionTypeDescription
authType'api_key'Authentication method
keystringAPI key (optional, uses database if not provided)
webhookSecretstringWebhook signing key (optional)
hooksobjectEndpoint hooks for custom logic
webhookHooksobjectWebhook hooks for event handling
errorHandlersobjectCustom error handlers

Usage

// Get current user
const me = await corsair.calendly.api.users.getCurrent({});

// List scheduled events
const events = await corsair.calendly.api.scheduledEvents.list({
    organization: "https://api.calendly.com/organizations/org-id",
});

// List event types
const eventTypes = await corsair.calendly.api.eventTypes.list({
    user: "https://api.calendly.com/users/user-id",
});

// Get invitees for an event
const invitees = await corsair.calendly.api.invitees.list({
    uuid: "event-uuid",
});

// Create a scheduling link
const link = await corsair.calendly.api.schedulingLinks.create({
    max_event_count: 1,
    owner: "https://api.calendly.com/event_types/type-id",
    owner_type: "EventType",
});

Query cached data

const events = await corsair.calendly.db.scheduledEvents.search({
    data: { status: "active" },
});

Multi-Tenancy

const tenant = corsair.withTenant("user-123");

const events = await tenant.calendly.api.scheduledEvents.list({
    user: "https://api.calendly.com/users/user-id",
});