The first thing most developers discover when they start building with Calendly's API: you can't create bookings.
Calendly's v2 API is fundamentally a read-and-sync API. It was built to let you read what happened in Calendly and sync it to your CRM or app. It was not built to let your application do the booking.
If you're building an AI agent that needs to autonomously schedule appointments with real professionals — a therapist, consultant, coach, or doctor — Calendly won't get you there.
Here's exactly what Calendly's API can and cannot do, and what developers are using instead.
What Calendly's API v2 Actually Does
Calendly's API is useful for specific use cases:
- Read scheduled events — get a list of upcoming bookings for a user
- Get event types — retrieve the event types a user has configured
- Get available time slots — check when a user is free
- List invitees — see who has booked time with a user
- Receive webhooks — get notified when a booking is created, canceled, or rescheduled
For a CRM integration, a team scheduling tool, or syncing bookings to your database, Calendly's API works well.
The Critical Limitation: You Cannot Create Bookings via API
Calendly has no API endpoint to create a booking.
The booking must be completed by a human through Calendly's UI — either the public scheduling page or an embedded widget. There is no POST /bookings endpoint you can call with a customer's details to confirm an appointment.
This means:
- ❌ Your AI agent cannot book an appointment on behalf of a user
- ❌ You cannot programmatically confirm a booking in your backend
- ❌ No autonomous scheduling — a human must always complete the flow
This is a fundamental design decision, not a bug. Calendly was built for human-to-human scheduling. The API was added to read and sync what happened — not to automate the booking itself.
Why This Matters for AI Agents
The defining capability of an AI agent for scheduling is: the agent books the appointment, the human just shows up.
That requires:
- Check availability for a provider
- Select a slot
- Create the booking programmatically — confirm it server-side, send confirmation emails, update the provider's calendar
- Receive real-time events when the booking status changes
Calendly supports steps 1 and 4. It does not support step 3.
A workaround exists — pre-filling Calendly's scheduling URL with query parameters — but the human still has to click "Confirm" on Calendly's page. For a fully autonomous agent workflow, that's a dead end.
Calendly API vs Orita: Side-by-Side
| | Calendly API | Orita API | |---|---|---| | Create bookings programmatically | ❌ | ✅ | | Check availability | ✅ | ✅ | | Read/list events | ✅ | ✅ | | Webhooks | ✅ (basic) | ✅ (full) | | Provider management API | ❌ | ✅ | | AI agent use case | ❌ | ✅ | | Auth model | OAuth 2.0 | API key | | SDK (JS + Python) | ❌ | ✅ | | Multi-provider support | ❌ | ✅ |
What to Use Instead: Orita API
Orita is a scheduling API built specifically for AI agent workflows. Where Calendly requires a human to complete every booking, Orita lets your agent do the entire flow in a single API call:
import { Orita } from "orita-sdk";
const orita = new Orita({ apiKey: process.env.ORITA_API_KEY });
// 1. Check availability
const slots = await orita.getSlots({
providerId,
date: "2026-08-05"
});
// 2. Create booking — no human click required
const booking = await orita.book({
providerId,
date: "2026-08-05",
time: slots[0].value,
customer: {
name: "James Park",
email: "james@email.com"
}
});
// → { bookingId: "bk_18382", status: "confirmed" }
The booking is confirmed server-side. The provider gets notified. The customer gets a confirmation email. No UI required.
When Calendly's API Is the Right Choice
Calendly's API works well when you need to:
- Sync Calendly bookings to your CRM
- Read a team's upcoming meetings
- Embed Calendly's scheduling UI in your product
- Get notified when someone books via Calendly's page
If your use case is reading what users schedule through Calendly's UI, the API works well. The limitation is exclusively around autonomous, programmatic creation of bookings.
Getting Started with Orita
Orita is available today for developers building scheduling into AI applications. The free plan includes 250 bookings/month and full API access.
npm install orita-sdk
# or
pip install orita-sdk