AI-agent scheduling API comparison
Calendly Scheduling API for AI Agents: A Group-Meeting Integration Guide
Calendly’s official developer guide now documents an API flow for an AI agent to map intent to an event type, fetch available times, create an invitee, and return confirmation without redirecting the user to a hosted booking page. Good. That closes a real integration gap. It also gives developers a cleaner way to ask the next question: does the product need event-type booking, or must the agent coordinate a hard group meeting across people it cannot already see?
Implement the documented flow, then run the group test
Calendly’s guide describes event-type booking through its Scheduling API. Follow that contract first. Then add one controlled hard-meeting fixture so you can see which participant and coordination responsibilities still belong to your application.
- 1
Normalize the agent’s meeting intent
Collect organizer or host, meeting purpose, duration, date window, locale, preferred times, location preference, invitee name and email, and confirmation policy. For the hard-meeting test, also add required and optional participants, meeting time zone, booking deadline, permitted outreach channels, and a stable meeting request ID. Do not map vague prose directly to a calendar write.- Ask for clarification when duration, date window, host authority, or required people are missing.
- Keep the original instruction and run the workflow from typed fields.
- Use IANA time zones for participant policy and display.
- 2
Authenticate for the documented Calendly API path
Calendly documents OAuth for public applications acting on behalf of Calendly users and personal access tokens for internal or organization use. Store the Calendly organization or user context beside the meeting request. Treat token expiration, insufficient subscription access, and organization-role limits as separate integration states.- Keep credentials out of model prompts and logs.
- Bind the selected host or organization to the authorized account.
- Request user confirmation before the agent performs a booking side effect.
- 3
Map intent to an event type and host
UseGET /event_typesor the event-type detail endpoint to identify the meeting template. The official guide puts intent-to-event-type mapping in your application. Persist the selected event type, owner or host, duration, location rules, and selection reason so the model cannot silently switch the meeting contract later.- Reject an event type that conflicts with the requested duration or location.
- Make collective or other host rules visible to the operator when they affect availability.
- A meeting revision re-runs mapping instead of mutating hidden assumptions.
- 4
Read current event-type availability
CallGET /event_type_available_timesfor the selected event type and bounded window. Calendly’s guide notes a 31-day retrieval limit and requires a valid open slot at booking time. Store the retrieved slots, query time, selected event type, and freshness. Convert display into the user’s local zone while preserving UTC at the API boundary.- Never treat a failed availability request as an open calendar.
- Re-query after a stale slot or a 404 at booking.
- Keep the user’s chosen local time and the submitted UTC time linked.
- 5
Confirm the invitee details and selected slot
Present two or three valid choices, collect the invitee’s selection, and confirm name, email, time zone, location input, and required question answers. The documented flow supports additional event guests as CCs. For a hard group meeting, do not confuse a guest address on the final event with verified pre-booking availability from that required person.- Validate email and location fields before the side effect.
- Show the exact event type, host, start, end, and time zone before booking.
- Bind confirmation to one meeting revision and one chosen slot.
- 6
Create the invitee and verify the Calendly result
CallPOST /inviteeswith the event type, UTC start time, invitee, time zone, and required location or question fields. Persist the returned scheduled-event reference, status, time zone, and management URLs. Do not report success until the response matches the requested event type, start, invitee, and host context.- Return the confirmation in the user’s local time.
- Expose cancel and reschedule paths when policy permits them.
- Redact personally identifiable information from logs as Calendly’s QA guidance recommends.
- 7
Add the hard group-meeting participant test
Create a fixture with three required people and one optional observer across two companies. Put one required person on Google, one on Microsoft, and leave one unconnected. Ask whether the selected event type’s available times represent every required participant’s current evidence. If not, your application still needs connected free/busy adapters, conversational availability collection, reminders, quorum rules, and candidate-slot generation before it calls the booking endpoint.- Required attendance remains a hard rule.
- Calendar connection is optional; unconnected people get an approved response path.
- An ambiguous reply or required decline creates a visible meeting state.
- 8
Add retries, idempotency, consent, and observability
Calendly’s guide distinguishes validation, authorization, forbidden, not-found, and transient server errors. Your meeting layer also needs a booking idempotency key, attempt record, safe retry budget, and reconciliation path after an uncertain response. Trace intent mapping, participant consent, availability sources, chosen slot, confirmation, booking call, returned event, and any recovery by meeting request ID.- A repeated command does not create a second booking or duplicate participant messages.
- A transient failure retries with a bound; a stale slot triggers a fresh availability query.
- External outreach and booking authority are explicit and revocable.
- 9
Score completion at the product boundary
For event-type booking, verify the scheduled event, invitee, host, time, location, and management links. For hard group scheduling, also verify required and optional roles, every availability source, cross-company overlap, final attendee set, invitation dispatch, and recovery state. The agent should returnconfirmedor a bounded exception, not ‘I sent a link’ or ‘I tried to book.’- Every terminal state has evidence and a safe next action.
- A human can approve, deny, pause, or reclaim sensitive work.
- The completion metric matches the promise shown to the user.
What Calendly’s AI-agent guide clearly documents
The official guide describes a server-side flow without redirects or iframes: map intent to an event type or host, retrieve event-type available times, create an invitee for a chosen slot, and return a confirmation with optional cancel and reschedule links. It also documents OAuth or personal-token access, IANA time zones, required location behavior, a 31-day availability-query limit, common HTTP errors, and a QA checklist.
That is a stronger developer boundary than handing every user a hosted link. It lets an AI product own the conversation and call Calendly for the configured booking outcome. If the product promise is ‘book this invitee into this host or event type,’ the documented flow may match it well.
Where hard group coordination begins
A hard group meeting starts before the selected event-type slot. The system must know who is required, who is optional, which calendars it can read, who must be contacted, what each reply means, how time zones and working hours apply, whether the evidence is fresh, and what to do when there is no overlap. Those facts determine whether any slot should reach the booking call.
Additional event guests on a final invitation are not the same as pre-booking coordination with those people. A developer should test collective and group event types against the exact use case rather than assume either success or failure from a category label. The acceptance test is simple: can every required participant contribute trustworthy availability before one canonical booking commits?
Scheduling execution, links, polls, sync, and APIs
A booking link asks an invitee to select. A poll gathers votes. A sync utility moves availability. A calendar API reads or writes provider resources. An AI assistant drafts outreach. Calendly’s Scheduling API can programmatically create a booking from a chosen event-type slot. Each boundary can be the right answer for a defined job.
Scheduling execution owns the larger instruction-to-booking state machine: required and optional people, connected free/busy, conversational fallback, reminders, overlap, consent, approval, retries, event commit, invitations, and recovery. WonderCal is being built toward that boundary for complex, multi-person, cross-company meetings across fragmented Google and Microsoft calendars.
A fair build-versus-buy decision
Use Calendly’s documented API path when event types, hosts, and configured availability already represent the meeting rule your agent needs. Build provider adapters around it when your product must aggregate additional participant evidence before selecting a slot. Build the full execution layer yourself only when calendar coordination is core product territory and your team will own consent, messaging, provider changes, retries, operator tooling, and support.
Evaluate WonderCal when the product promise is a completed hard meeting and your team does not want that coordination roadmap. Because the release is still targeted, demand live proof: mixed Google and Microsoft participants, optional calendar connection, participant outreach, required roles, safe replay, reason codes, meeting-level observability, and verified invitations.
Calendly booking flow versus group scheduling execution
Compare the documented product boundary, not old assumptions about what an API can or cannot do.
| Decision vector | Calendly documented Scheduling API flow | DIY coordination around booking APIs | WonderCal execution direction |
|---|---|---|---|
| Execution completion | Books an invitee into a valid slot for a selected event type and returns confirmation and management links. | Can complete hard groups if your team builds intent, participants, evidence, slot policy, commit state, and proof. | Target product owns the hard-meeting brief through verified group invitations or a bounded exception. |
| Cross-company reach | Invitees and event guests can be external; test whether configured event-type availability covers every required external participant. | Reach depends on the Google, Microsoft, tenant, identity, and messaging adapters you build. | Designed around required and optional people across companies, Google, Microsoft, and unconnected calendars. |
| Optional-sync fallback | The official AI-agent guide begins from collected booking details and a valid event-type slot; broader participant collection is an application concern to test. | You own consent, outreach, reply parsing, reminders, ambiguity, and normalized availability. | Target design combines connected free/busy with conversational collection in one meeting record. |
| Recovery and observability | Documents HTTP error classes, re-query behavior, confirmation data, and management URLs for the booking flow. | You add meeting-level states, idempotency, traces, reconciliation, and operator actions. | The released product should prove reason codes, safe replay, webhooks, stuck-state visibility, and human recovery. |
| Consent and privacy | Uses OAuth or personal tokens for host access; your application still governs agent authority, collected invitee data, and extra outreach. | You own provider scopes, participant channels, approvals, retention, redaction, and revocation. | Target model protects free/busy and separates calendar reads, participant contact, booking, and approvals. |
| Time to ship | Short path when a Calendly event type already expresses the booking rule. | More work, with control over every participant and coordination edge case. | Adoption makes sense when the live execution layer removes hard-group coordination your team does not need to own. |
Execution completion
Calendly documented Scheduling API flow
Books an invitee into a valid slot for a selected event type and returns confirmation and management links.
DIY coordination around booking APIs
Can complete hard groups if your team builds intent, participants, evidence, slot policy, commit state, and proof.
WonderCal execution direction
Target product owns the hard-meeting brief through verified group invitations or a bounded exception.
Cross-company reach
Calendly documented Scheduling API flow
Invitees and event guests can be external; test whether configured event-type availability covers every required external participant.
DIY coordination around booking APIs
Reach depends on the Google, Microsoft, tenant, identity, and messaging adapters you build.
WonderCal execution direction
Designed around required and optional people across companies, Google, Microsoft, and unconnected calendars.
Optional-sync fallback
Calendly documented Scheduling API flow
The official AI-agent guide begins from collected booking details and a valid event-type slot; broader participant collection is an application concern to test.
DIY coordination around booking APIs
You own consent, outreach, reply parsing, reminders, ambiguity, and normalized availability.
WonderCal execution direction
Target design combines connected free/busy with conversational collection in one meeting record.
Recovery and observability
Calendly documented Scheduling API flow
Documents HTTP error classes, re-query behavior, confirmation data, and management URLs for the booking flow.
DIY coordination around booking APIs
You add meeting-level states, idempotency, traces, reconciliation, and operator actions.
WonderCal execution direction
The released product should prove reason codes, safe replay, webhooks, stuck-state visibility, and human recovery.
Consent and privacy
Calendly documented Scheduling API flow
Uses OAuth or personal tokens for host access; your application still governs agent authority, collected invitee data, and extra outreach.
DIY coordination around booking APIs
You own provider scopes, participant channels, approvals, retention, redaction, and revocation.
WonderCal execution direction
Target model protects free/busy and separates calendar reads, participant contact, booking, and approvals.
Time to ship
Calendly documented Scheduling API flow
Short path when a Calendly event type already expresses the booking rule.
DIY coordination around booking APIs
More work, with control over every participant and coordination edge case.
WonderCal execution direction
Adoption makes sense when the live execution layer removes hard-group coordination your team does not need to own.
Frequently asked questions
Can an AI agent book a Calendly event through an API?
Does the Calendly Scheduling API avoid a hosted booking page?
Is adding event guests the same as coordinating required group availability?
When does an AI agent need a scheduling execution layer?
Is WonderCal’s AI scheduling API public now?
Primary sources
- Calendly Developer: Schedule Events with AI Agents — official intent mapping, event-type availability, create-invitee, confirmation, limitations, error, and QA guidance
- Calendly Developer: Getting Started — official API v2, Embed API, Webhook API, token, OAuth, subscription, and role overview
- Calendly Developer: Scheduling API — official announcement and API reference entry point for direct in-product scheduling
- Google Calendar API: Freebusy query — official Google free/busy interface used in the hard-group test
- Microsoft Graph: calendar getSchedule — official Microsoft availability endpoint used in the hard-group test
- Model Context Protocol: Tools — official structured tool, error, security, and human-control guidance for AI clients
Choose the API boundary your agent can defend
If event-type booking finishes the job, use that boundary. If your agent promises to coordinate a hard group meeting, evaluate WonderCal’s release against required people, mixed calendars, optional sync, consent, recovery, and verified invitations.
Evaluate WonderCal for AI agents