Calendly API - Scheduling & Booking Automation
Pricing
from $0.01 / 1,000 results
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
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Calendly API
Built by John Rippy | johnrippy.link
🏆 2025 Zapier Automation Hero of the Year — Project 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
| Parameter | Type | Required | Description |
|---|---|---|---|
| task | string | Yes | Operation to perform |
| accessToken | string | Yes* | Personal access token (*not needed for demoMode) |
| userUri | string | No | User URI for filtering |
| organizationUri | string | No | Organization URI |
| eventTypeUri | string | No | Event type URI |
| scheduledEventUri | string | No | Scheduled event URI |
| inviteeUri | string | No | Invitee URI |
| startTime | string | No | Start time (ISO 8601) |
| endTime | string | No | End time (ISO 8601) |
| status | string | No | Event status (active/canceled) |
| cancelReason | string | No | Reason for cancellation |
| webhookCallbackUrl | string | No | URL for webhook delivery |
| webhookEvents | array | No | Events to subscribe to |
| maxResults | integer | No | Max results (default: 100) |
| resultWebhookUrl | string | No | URL to send results |
| demoMode | boolean | No | Run with sample data (default: true) |
Available Tasks
| Task | Description |
|---|---|
get_current_user | Get authenticated user info |
list_event_types | List all event types |
get_event_type | Get event type details |
list_scheduled_events | List scheduled events |
get_scheduled_event | Get event details |
cancel_scheduled_event | Cancel a scheduled event |
list_event_invitees | List invitees for an event |
get_invitee | Get invitee details |
list_available_times | Get available time slots |
list_busy_times | Get user's busy times |
list_organization_memberships | List org members |
get_organization_membership | Get membership details |
list_routing_forms | List routing forms |
get_routing_form | Get routing form details |
list_routing_form_submissions | Get form submissions |
list_webhooks | List webhook subscriptions |
create_webhook | Create webhook subscription |
delete_webhook | Delete webhook subscription |
Getting Your Access Token
- Go to calendly.com/integrations/api_webhooks
- Click Create New Token
- Give it a name (e.g., "Apify Integration")
- 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:
| Event | Description |
|---|---|
invitee.created | New booking created |
invitee.canceled | Booking canceled |
routing_form_submission.created | Form 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:
| Operation | Cost |
|---|---|
| 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 |
Related Actors
- Google Calendar - Calendar automation
- HubSpot CRM - CRM integration
Support
- Calendly API Docs: developer.calendly.com
- Issues: Report on Apify