AI agents and developer implementation
Conversation-First Scheduling API: Build the No-Calendar-Sync Fallback
Calendar connection makes scheduling faster. It should not become the price of admission. The first external executive who cannot grant OAuth, the candidate who will not expose a personal calendar, or the client panelist behind another tenant turns a calendar-only integration back into an email relay. A conversation-first scheduling API needs a real fallback, not a polite link.
Build the optional-sync fallback in eight steps
Test with three required people and one optional participant. Two calendars are connected, one participant answers conversationally, and one participant starts with an expired provider connection. The meeting should use one coordination record and one completion path.
- 1
Parse one bounded meeting instruction
Create a typed brief with meeting request ID, revision, organizer, purpose, duration, date window, deadline, meeting time zone, working-hour policy, location, required participants, optional participants, approval mode, and permitted participant channels. Keep the source instruction for audit, but do not make later workers reread prose to recover quorum or policy.- Reject missing organizer, duration, date window, deadline, or required participant.
- Use IANA time-zone names for the meeting and each known participant.
- A change to people, window, duration, or authority creates a new revision.
- 2
Resolve authority and contact consent per person
Record who supplied each participant, whether the organizer may contact them for this meeting, the allowed channel, the identity to use, reminder limit, response deadline, and opt-out state. Calendar-read permission, participant-outreach authority, event-write permission, and cancellation authority are separate capabilities.- Never infer outreach authority from possession of an email address.
- The participant can decline, opt out, or request human contact.
- Sensitive operations require explicit approval under the organizer’s policy.
- 3
Read the calendars that are connected
Query approved Google and Microsoft free/busy inside the exact date window. Normalize intervals into UTC while preserving source time zone, provider, retrieval time, permission class, and error state. Request the narrowest access that supports the job. Event titles, descriptions, locations, and attendee lists are unnecessary for overlap.- A partial or failed provider response is missing evidence, not free time.
- Classify denied access, expired access, throttling, and provider errors separately.
- Attach source freshness so a proposal can be invalidated before booking.
- 4
Send a bounded availability request for what is missing
Tell the participant who is organizing, the meeting purpose, duration, bounded date window, displayed time zone, response deadline, and how their answer will be used. Ask for usable windows, not a calendar dump. A private response page can be one conversation surface, but it must return to the same meeting record rather than opening a second polling workflow.- Do not expose other participants’ votes, event details, or private constraints.
- Use one outreach idempotency key per participant, meeting revision, and message purpose.
- Give the participant a clear decline and correction path.
- 5
Parse replies into evidence, not guesses
Convert ‘Tuesday after 2’ into intervals only when the date context and time zone are known. Store the original reply in a restricted record, then save normalized windows, exclusions, source, received time, parser confidence, and unresolved fields. Ask one narrow clarification when a zone, date, or boundary is ambiguous.- Never invent a time zone from an email domain or phone number.
- Treat ‘probably’ and ‘should work’ according to explicit confidence policy.
- A correction supersedes old evidence without erasing the audit trail.
- 6
Run reminders and recovery as durable work
Persist outreach state outside the model transcript. Schedule reminders by participant local time, organizer policy, response deadline, and previous contact. Retry transport failures without duplicating a delivered message. Stop on decline, opt-out, reminder cap, deadline, organizer cancellation, or human reclaim.- A worker restart resumes the same participant state.
- Silence from a required participant blocks completion rather than changing the quorum.
- Every stopped path returns a reason and one safe next action.
- 7
Find overlap across both evidence sources
Intersect every required participant’s current intervals whether they came from connected free/busy or a response. Score survivors for optional attendance, working hours, buffers, organizer preferences, time-zone fairness, and deadline. Save the participant evidence versions behind each proposal and rebuild when any required source changes.- Do not rank a slot that excludes a required person.
- Show which optional people can attend before approval.
- A no-overlap result names the smallest duration, date-window, role, or preference change an authorized person can make.
- 8
Commit and verify one canonical meeting
Bind approval to the current brief revision, selected slot, attendee set, organizer calendar, and evidence versions. Re-check connected required calendars immediately before the write and confirm that conversational windows remain inside their stated freshness policy. Use one booking key, reconcile uncertain writes, persist the provider event ID, and verify invitations.- A repeated command returns the original event rather than creating a duplicate.
- Completion includes start, end, time zone, required attendees, optional attendees, and dispatch state.
- A conflict after approval becomes a recoverable exception, not a false success.
The fallback belongs inside the scheduling state machine
Teams often bolt a form or poll onto a calendar integration and call the missing-calendar case solved. That creates two systems. Connected people live in provider intervals; everyone else lives in a link response, inbox, or spreadsheet. The agent then becomes the translator between them.
Use one participant schema and one interval schema. Availability source changes how evidence is collected and refreshed, not how the meeting is identified, how required attendance is enforced, or how booking is proven. A person can connect a calendar after responding, revoke access, or correct a window without starting over.
Conversation-first does not mean model-first
The model is useful for turning a natural-language instruction into a brief, drafting a bounded request, and parsing ordinary responses. Deterministic code should enforce consent, required attendance, time zones, reminder caps, date bounds, source freshness, idempotency, approval, and the calendar write.
Keep the original language as evidence. Keep the operational truth in typed state. When a reply is ambiguous, ask rather than guess. When a policy forbids another reminder, stop rather than letting the model optimize for completion at the participant’s expense.
Scheduling execution is not a fallback link
A poll asks participants to vote. A booking link asks someone to pick from host-side openings. A calendar-sync utility copies or exposes availability. A calendar API reads and writes provider resources. An AI assistant can draft the request. Each may help while leaving the organizer responsible for the whole loop.
Scheduling execution owns the brief through connected or conversational availability, required overlap, consent, reminders, clarification, approval, one event, invitations, and recovery. Calendar sync is encouraged because it reduces work and improves freshness. It is not the product category and should not block an external person from the meeting.
Run the no-calendar acceptance test
Start with one organizer on Google, one required participant on Microsoft, one required participant with no connection, and one optional participant. Force an expired token, ambiguous ‘Friday morning’ reply, duplicate inbound message, required silence, optional decline, organizer revision, stale slot, and timeout after event creation.
Pass only when the system keeps one meeting identity, asks the minimum clarification, respects reminder caps, finds overlap from both evidence paths, and creates one verified event—or returns a bounded exception with current evidence. Fail when the organizer has to compare a poll with free/busy by hand.
Compare fallback approaches by whether they finish the meeting
The no-sync path is not an edge case in cross-company scheduling. Compare how much coordination your application still owns after one participant cannot or will not connect a calendar.
| Decision vector | Calendar-only integration | Booking link or polling fallback | WonderCal execution direction |
|---|---|---|---|
| Execution completion | Can calculate and write for connected accounts; missing participants return the job to application code or a person. | Collects a selection or votes; the application may still reconcile required people and commit the final event. | Target boundary carries connected and conversational evidence through one verified booking or bounded exception. |
| Cross-company reach | Depends on credentials, tenant policy, provider support, and each participant’s willingness to connect. | Works across domains in a browser, but asks participants to move into a separate choice surface. | Designed for Google, Microsoft, different companies, and participants who answer without an account or calendar connection. |
| Optional-sync fallback | Your team builds outreach, replies, time zones, reminders, ambiguity, and consent. | The link or poll is the fallback; its response state still needs to join the meeting state. | Target model treats calendar connection as helpful while conversational availability remains a first-class source. |
| Recovery and observability | Provider errors are visible, while participant wait and messaging repair belong to your system. | Response activity is visible, while stale calendars, revised briefs, and uncertain booking writes may live elsewhere. | Target release should expose participant states, source freshness, reason codes, retries, reconciliation, and safe operator actions. |
| Consent and control | OAuth consent covers provider access; outreach and booking authority need separate policy. | Participant action is explicit, but reminder policy, use of responses, and final booking authority still need rules. | Target model separates calendar reads, participant contact, approval, booking, rescheduling, cancellation, and opt-out. |
| Time to ship | Fast for a single connected account; external participant coverage becomes a second roadmap. | Fast when a self-service link or poll satisfies the product promise. | Worth adopting when the live execution layer removes both provider logic and the no-sync coordination loop. |
Execution completion
Calendar-only integration
Can calculate and write for connected accounts; missing participants return the job to application code or a person.
Booking link or polling fallback
Collects a selection or votes; the application may still reconcile required people and commit the final event.
WonderCal execution direction
Target boundary carries connected and conversational evidence through one verified booking or bounded exception.
Cross-company reach
Calendar-only integration
Depends on credentials, tenant policy, provider support, and each participant’s willingness to connect.
Booking link or polling fallback
Works across domains in a browser, but asks participants to move into a separate choice surface.
WonderCal execution direction
Designed for Google, Microsoft, different companies, and participants who answer without an account or calendar connection.
Optional-sync fallback
Calendar-only integration
Your team builds outreach, replies, time zones, reminders, ambiguity, and consent.
Booking link or polling fallback
The link or poll is the fallback; its response state still needs to join the meeting state.
WonderCal execution direction
Target model treats calendar connection as helpful while conversational availability remains a first-class source.
Recovery and observability
Calendar-only integration
Provider errors are visible, while participant wait and messaging repair belong to your system.
Booking link or polling fallback
Response activity is visible, while stale calendars, revised briefs, and uncertain booking writes may live elsewhere.
WonderCal execution direction
Target release should expose participant states, source freshness, reason codes, retries, reconciliation, and safe operator actions.
Consent and control
Calendar-only integration
OAuth consent covers provider access; outreach and booking authority need separate policy.
Booking link or polling fallback
Participant action is explicit, but reminder policy, use of responses, and final booking authority still need rules.
WonderCal execution direction
Target model separates calendar reads, participant contact, approval, booking, rescheduling, cancellation, and opt-out.
Time to ship
Calendar-only integration
Fast for a single connected account; external participant coverage becomes a second roadmap.
Booking link or polling fallback
Fast when a self-service link or poll satisfies the product promise.
WonderCal execution direction
Worth adopting when the live execution layer removes both provider logic and the no-sync coordination loop.
Frequently asked questions
What is a conversation-first scheduling API?
Does every participant need to connect a calendar?
How should an API parse a reply such as ‘Tuesday afternoon’?
How do you prevent duplicate outreach and bookings?
Is WonderCal’s conversation-first API available now?
Primary sources
- Google Calendar API: Freebusy query — official Google free/busy request, response, bounds, time zone, and error fields
- Microsoft Graph: calendar getSchedule — official Microsoft availability operation, time-zone header, and permission guidance
- Google Calendar API: Choose scopes — official guidance to request the narrowest scope an application needs
- Model Context Protocol: Tools — official model-callable tool, confirmation, timeout, schema, and security guidance
- Microsoft Research: Calendar.help — published research on structured scheduling workflows with people in the loop
Do not stop when one calendar is missing
Evaluate WonderCal’s developer release against the real fallback: consent-safe outreach, parsed availability, mixed evidence, bounded reminders, safe recovery, and one verified group booking.
Review WonderCal for AI agents