Calendly API - Scheduling & Booking Automation avatar
Calendly API - Scheduling & Booking Automation

Pricing

from $0.01 / 1,000 results

Go to Apify Store
Calendly API - Scheduling & Booking Automation

Calendly API - Scheduling & Booking Automation

Automate your Calendly scheduling with the official API. List event types, manage scheduled events, check availability, sync invitee data, and create webhook subscriptions. Perfect for CRM integration, appointment automation, and availability management.

Pricing

from $0.01 / 1,000 results

Rating

0.0

(0)

Developer

John Rippy

John Rippy

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Calendly API

Built by John Rippy | johnrippy.link

🏆 2025 Zapier Automation Hero of the YearProject Phoenix: A 95-step AI sales pipeline cutting development time by 50%. Read more →

Scheduling & Booking Automation - Events, Invitees & Availability

Automate your Calendly scheduling with the official API. List event types, manage scheduled events, check availability, sync invitee data, and create webhook subscriptions. Perfect for CRM integration, appointment automation, and availability management.

What is the Calendly API?

The Calendly API provides RESTful access to your Calendly account. Manage event types, scheduled events, invitees, availability, and webhooks programmatically.

Features

User & Organization

  • Get Current User - Retrieve authenticated user info
  • List Organization Memberships - Get org members and roles
  • Get Organization Membership - Retrieve specific membership

Event Types

  • List Event Types - Get all your event types (meetings, calls, etc.)
  • Get Event Type - Retrieve specific event type details

Scheduled Events

  • List Scheduled Events - Query upcoming/past bookings
  • Get Scheduled Event - Retrieve event details
  • Cancel Scheduled Event - Cancel with optional reason

Invitees

  • List Event Invitees - Get invitees for a scheduled event
  • Get Invitee - Retrieve invitee details

Availability

  • List Available Times - Get open slots for an event type
  • List Busy Times - Get user's busy periods

Routing Forms

  • List Routing Forms - Get routing forms for qualification
  • Get Routing Form - Retrieve form details
  • List Routing Form Submissions - Get form responses

Webhooks

  • List Webhooks - Get webhook subscriptions
  • Create Webhook - Subscribe to events (invitee.created, etc.)
  • Delete Webhook - Remove subscription

Use Cases

CRM Integration

  • Sync new bookings to Salesforce/HubSpot
  • Update deal stages when meetings are scheduled
  • Track meeting outcomes

Sales Automation

  • Notify sales reps of new bookings
  • Auto-qualify leads from routing forms
  • Track booking conversion rates

Customer Success

  • Monitor client meeting frequency
  • Alert on cancellations
  • Track onboarding calls

Operations

  • Sync availability with other calendars
  • Monitor team utilization
  • Generate scheduling reports

Input Parameters

ParameterTypeRequiredDescription
taskstringYesOperation to perform
accessTokenstringYes*Personal access token (*not needed for demoMode)
userUristringNoUser URI for filtering
organizationUristringNoOrganization URI
eventTypeUristringNoEvent type URI
scheduledEventUristringNoScheduled event URI
inviteeUristringNoInvitee URI
startTimestringNoStart time (ISO 8601)
endTimestringNoEnd time (ISO 8601)
statusstringNoEvent status (active/canceled)
cancelReasonstringNoReason for cancellation
webhookCallbackUrlstringNoURL for webhook delivery
webhookEventsarrayNoEvents to subscribe to
maxResultsintegerNoMax results (default: 100)
resultWebhookUrlstringNoURL to send results
demoModebooleanNoRun with sample data (default: true)

Available Tasks

TaskDescription
get_current_userGet authenticated user info
list_event_typesList all event types
get_event_typeGet event type details
list_scheduled_eventsList scheduled events
get_scheduled_eventGet event details
cancel_scheduled_eventCancel a scheduled event
list_event_inviteesList invitees for an event
get_inviteeGet invitee details
list_available_timesGet available time slots
list_busy_timesGet user's busy times
list_organization_membershipsList org members
get_organization_membershipGet membership details
list_routing_formsList routing forms
get_routing_formGet routing form details
list_routing_form_submissionsGet form submissions
list_webhooksList webhook subscriptions
create_webhookCreate webhook subscription
delete_webhookDelete webhook subscription

Getting Your Access Token

  1. Go to calendly.com/integrations/api_webhooks
  2. Click Create New Token
  3. Give it a name (e.g., "Apify Integration")
  4. Copy the token immediately (it won't be shown again)

Example Usage

Get Current User

{
"task": "get_current_user",
"accessToken": "eyJraWQiOiIxY..."
}

List Event Types

{
"task": "list_event_types",
"accessToken": "eyJraWQiOiIxY...",
"userUri": "https://api.calendly.com/users/XXXXXXXX"
}

List Scheduled Events

{
"task": "list_scheduled_events",
"accessToken": "eyJraWQiOiIxY...",
"userUri": "https://api.calendly.com/users/XXXXXXXX",
"status": "active",
"startTime": "2025-01-01T00:00:00Z",
"endTime": "2025-01-31T23:59:59Z",
"maxResults": 50
}

Get Available Times

{
"task": "list_available_times",
"accessToken": "eyJraWQiOiIxY...",
"eventTypeUri": "https://api.calendly.com/event_types/XXXXXXXX",
"startTime": "2025-01-15T00:00:00Z",
"endTime": "2025-01-22T23:59:59Z"
}

Cancel Scheduled Event

{
"task": "cancel_scheduled_event",
"accessToken": "eyJraWQiOiIxY...",
"scheduledEventUri": "https://api.calendly.com/scheduled_events/XXXXXXXX",
"cancelReason": "Client requested reschedule"
}

Create Webhook Subscription

{
"task": "create_webhook",
"accessToken": "eyJraWQiOiIxY...",
"userUri": "https://api.calendly.com/users/XXXXXXXX",
"organizationUri": "https://api.calendly.com/organizations/XXXXXXXX",
"webhookCallbackUrl": "https://hooks.zapier.com/hooks/catch/123456/abcdef/",
"webhookEvents": ["invitee.created", "invitee.canceled"],
"webhookScope": "user"
}

Output

Results are saved to the default dataset:

User Info

{
"task": "get_current_user",
"success": true,
"user": {
"uri": "https://api.calendly.com/users/XXXXXXXX",
"name": "John Smith",
"email": "john@company.com",
"scheduling_url": "https://calendly.com/johnsmith",
"timezone": "America/New_York",
"current_organization": "https://api.calendly.com/organizations/XXXXXXXX"
}
}

Event Types

{
"task": "list_event_types",
"success": true,
"eventTypes": [
{
"uri": "https://api.calendly.com/event_types/XXXXXXXX",
"name": "30 Minute Meeting",
"active": true,
"duration": 30,
"kind": "solo",
"scheduling_url": "https://calendly.com/johnsmith/30min"
}
],
"total": 5
}

Scheduled Events

{
"task": "list_scheduled_events",
"success": true,
"scheduledEvents": [
{
"uri": "https://api.calendly.com/scheduled_events/XXXXXXXX",
"name": "30 Minute Meeting",
"status": "active",
"start_time": "2025-01-15T10:00:00Z",
"end_time": "2025-01-15T10:30:00Z",
"location": {
"type": "zoom",
"join_url": "https://zoom.us/j/123456789"
}
}
],
"total": 12
}

Webhook Events

Available events for webhook subscriptions:

EventDescription
invitee.createdNew booking created
invitee.canceledBooking canceled
routing_form_submission.createdForm submitted

Rate Limits

Calendly API rate limit: 100 requests per minute

The actor handles this automatically with built-in rate limiting.

Demo Mode

Test the actor without API credentials:

{
"task": "list_event_types",
"demoMode": true
}

Pricing

Pay-per-result pricing:

OperationCost
Get user info$0.01
List event types$0.02
Get event type$0.01
List scheduled events$0.02
Get scheduled event$0.01
Cancel event$0.02
List invitees$0.02
List available times$0.02
List busy times$0.01
List org memberships$0.01
Routing form operations$0.02
Webhook operations$0.02

Support