AI agents and developer implementation

    Conversation-First Scheduling API: Build the No-Calendar-Sync Fallback

    By Tevye Krynski15 min read

    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. 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. 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. 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. 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. 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. 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. 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. 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.

    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?

    It is a scheduling service that can collect or clarify availability through approved participant conversations, combine those responses with connected free/busy, enforce meeting policy, and continue to a verified booking. The conversation is part of durable meeting state, not an email drafted and forgotten by the agent.

    Does every participant need to connect a calendar?

    No. Calendar connection should be encouraged because it reduces work and improves freshness. An unconnected participant can provide bounded availability through an approved response path, with time zone, source, freshness, consent, and clarification handled explicitly.

    How should an API parse a reply such as ‘Tuesday afternoon’?

    Use the meeting window and known participant time zone only when both are authoritative. If the date, zone, or boundary is ambiguous, save the unresolved reply and ask one narrow clarification. Do not invent an interval to make the workflow move faster.

    How do you prevent duplicate outreach and bookings?

    Use separate idempotency keys for each participant message purpose and for the booking commit. Persist delivery and provider event identifiers. Reconcile an uncertain calendar write before retrying, and return the original result when the same command is repeated.

    Is WonderCal’s conversation-first API available now?

    WonderCal is targeting a developer-facing MCP/API release for September 1, 2026. Treat the workflow described here as product direction until current participant channels, optional-sync fallback, provider support, approvals, and booking proof are documented and live. Review WonderCal for AI agents for current access.

    Primary sources

    Related WonderCal reading

    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