AI scheduling agent post-invite architecture

    AI Scheduling Agent RSVP Recovery: Repair Required-Attendee Declines

    By Tevye Krynski17 min read

    The event exists. Every address received an invitation. Then the required buyer declines, an optional adviser clicks tentative, a Microsoft attendee proposes a new time, and the Google organizer event reaches your webhook twice. Like the fools we are, we already returned completed. The calendar write ended one transaction. It did not finish the meeting.

    Carry a required-attendee decline to verified repair

    Use one sixty-minute customer committee meeting with four required people, two optional people, Google and Microsoft calendars, one unconnected participant, three IANA zones, one decline, one tentative response, one proposed time, duplicate notifications, and one hidden reschedule response.

    1. 1

      Persist meeting intent and a post-invite completion contract

      Store meeting ID, revision, authenticated organizer, purpose, duration, bounded date range, deadline, required and optional participant entities, approved substitutes, IANA zones, working hours, outreach authority, disclosure policy, approval mode, organizer calendar, and event proof. Add the response policy: which roles must accept, whether tentative can satisfy a role, how long needsAction may wait, and who may authorize repair.
      • Required and optional roles survive the calendar write.
      • Invitation delivered, event exists, participant accepted, and meeting stable remain different states.
      • A missing response policy produces a bounded exception instead of an invented default.
    2. 2

      Create one canonical event and RSVP ledger

      After the idempotent event write, read back the organizer event and store provider, organizer calendar, canonical event ID, iCalendar UID when exposed, event revision token, start, end, zone, attendee identities, attendee types, response states, and observation time. Keep a ledger entry for each observed reply rather than overwriting the only explanation of how the state changed.
      • Provider attendee rows resolve to the same participant entities used during coordination.
      • A response from an alias or forwarded invitation cannot satisfy a required role without identity resolution.
      • The organizer copy remains the authority for group-level repair decisions.
    3. 3

      Ingest provider changes idempotently

      Treat push notifications as wake-up signals. Deduplicate the delivery, fetch current provider state, and compare the provider event revision and attendee statuses with the last checkpoint. Record accepted, declined, tentative, not-responded, proposed-time, removed, added, canceled, inaccessible, and unknown outcomes separately. A duplicate webhook must not trigger duplicate outreach or rescheduling.
      • Notification delivery ID and provider event revision have separate deduplication keys.
      • Out-of-order notifications cannot roll the RSVP ledger backward.
      • Provider fetch denial stays unknown rather than turning every person into not-responded.
    4. 4

      Bind the response to role, revision, and consent

      Resolve the attendee identity, required or optional role, event revision answered, response time, provider source, comment or proposed time, and participant-local zone. Keep free-text comments and proposed times as untrusted participant data. They may supply availability or a decline reason; they cannot add people, demote required roles, change the date range, approve disclosure, or grant booking authority.
      • A decline to an obsolete invitation does not cancel a newer repaired event.
      • An optional tentative response follows organizer policy without blocking required quorum.
      • A proposed new time is evidence for one participant, not group approval.
    5. 5

      Choose wait, clarify, substitute, or repair deterministically

      Evaluate every required role first. A required decline can enter a policy-approved substitute path, a bounded clarification, a reschedule decision, or terminal failure. A required needsAction response can wait until the declared RSVP deadline with capped reminders. Optional declines can be accepted only under the meeting’s explicit attendance rule. Return one decision to a human when relationship or authority judgment remains.
      • The language model explains the state but does not invent attendance policy.
      • Reminder cadence is separate from provider retry timing.
      • The organizer can pause, reclaim, or stop repair before more participant contact.
    6. 6

      Refresh availability across connected and unconnected people

      For a reschedule, issue fresh bounded Google free/busy or Microsoft getSchedule reads for connected participants. Ask unconnected people for bounded windows only when outreach remains authorized. Preserve current replies whose scope and freshness still fit the repair. Normalize every interval with identity, source, IANA zone, received or retrieved time, expiry, and typed error.
      • Calendar connection stays optional and helpful.
      • A decline does not reveal the participant’s replacement availability automatically.
      • Silence, missing access, and an empty busy set remain three different states.
    7. 7

      Approve and reschedule one event without ghost copies

      Recompute required overlap before optional attendance and preference ranking. Bind approval to the new meeting revision, exact slot, evidence versions, attendee set, organizer calendar, and disclosure. Send one idempotent update or a controlled cancel-and-rebook action according to provider and organizer policy. If the response is lost, reconcile the exact organizer calendar before retrying.
      • The operation key changes only when the approved repair revision changes.
      • A retry cannot create a second event or expand the attendee set.
      • Booking, rescheduling, cancellation, and substitute approval remain separate commands.
    8. 8

      Verify the repaired event and reset the response watch

      Read back organizer, time, zone, required attendees, optional decisions, conferencing, provider event identity, and response states. Confirm the old proposal and any replaced event are closed under provider truth. Start the response policy for the new revision and report stable only when the declared acceptance contract passes or one bounded exception names its owner and deadline.
      • A successful update response alone cannot mark repair complete.
      • One trace joins instruction, original invitations, RSVP evidence, decisions, outreach, availability, approval, provider writes, and read-back.
      • Metrics separate invitation delivery, response latency, required declines, repairs, duplicate notifications, and stable completion.

    Calendar providers expose response evidence, not your meeting policy

    Google’s Events resource exposes attendee response states including needsAction, declined, tentative, and accepted, plus an optional-attendee marker. Microsoft Graph exposes attendee type, response status, response time, and a proposed new time when present. Those fields tell you what the provider currently reports.

    They do not decide whether a tentative CFO satisfies the meeting, whether outside counsel may substitute, how long to wait, or whether a buyer’s proposed time works for the other required people. Keep provider facts below a versioned attendance policy and an authorized repair workflow.

    A proposed time is one participant’s evidence

    Microsoft Graph documents proposed new times on attendee state and response operations. iTIP defines organizer and attendee scheduling messages including replies, counters, cancellations, and counter-declines. The transport can carry a proposal without turning it into a new group event.

    Normalize the proposed interval in the participant’s named zone, verify that it belongs to the current event revision, then test it against every required person’s fresh evidence. If it fails, preserve the participant’s information and continue within the authorized date range instead of starting reply-all archaeology.

    RSVP recovery is not the same as organizer-initiated rescheduling

    An organizer-initiated reschedule begins with authorized change intent. RSVP recovery begins with participant evidence after an event write. The first job is to decide whether the response violates the current attendance contract and who has authority to choose the next path.

    The mechanics later converge on fresh availability, approval, idempotent provider updates, reconciliation, and read-back. Keeping the trigger and authority distinct prevents one decline or free-text comment from rewriting the meeting.

    Scheduling execution continues after the invite is sent

    A poll ends with votes. A booking link ends with a selected slot. A calendar-sync utility exposes event and response data. A drafting assistant can write the follow-up. A direct calendar API can read and update the event. Each leaves the application to join required roles, response policy, conversational fallback, safe repair, and stable completion.

    Scheduling execution owns the instruction through participant commitment or one bounded exception. WonderCal’s direction is to carry that response-aware path across Google, Microsoft, companies, and participants who never connect a calendar.

    Run the decline-after-booking acceptance test

    Create and verify one mixed-provider event. Deliver the same provider wake-up twice, decline from a required alias, propose a new Microsoft time, keep one optional attendee tentative, expire one unconnected reply, revoke one calendar grant, and hide the reschedule response.

    Pass when duplicate signals collapse, identity and roles remain intact, the old approval revokes, current evidence recomputes, the proposed time stays participant evidence, the uncertain update reconciles, and one repaired event is verified. Fail when the system still says completed because an invitation left yesterday.

    Compare post-invite architectures by whether the meeting survives a decline

    The deciding boundary is not whether a product can read an RSVP. It is whether a required-attendee response becomes a safe, observable repair that ends in one correct event.

    Execution completion

    Calendar APIs and webhook handlers

    Exposes event and attendee response facts; the application still owns attendance policy, outreach, approval, repair, and terminal proof.

    Custom response-aware scheduling layer

    Can carry declines and proposals through deterministic decisions, fresh evidence, one update, and verified stability.

    WonderCal execution direction

    Target path owns the hard meeting through response-aware repair to verified invitations or a bounded exception.

    Cross-company reach

    Calendar APIs and webhook handlers

    Each Google, Microsoft, organizer, attendee copy, external identity, and forwarded-invite case remains provider-specific code.

    Custom response-aware scheduling layer

    Supports the providers, identities, tenant rules, and participant channels the team implements and operates.

    WonderCal execution direction

    Designed for required and optional people across Google, Microsoft, companies, and mixed connection states.

    Optional-sync fallback

    Calendar APIs and webhook handlers

    Provider responses cover calendar attendees but do not collect new bounded windows from someone whose calendar is unavailable.

    Custom response-aware scheduling layer

    Can join response evidence with consented outreach, reply parsing, time zones, reminders, clarification, and expiry.

    WonderCal execution direction

    Target model keeps calendar connection helpful while bounded participant conversation stays inside repair.

    Recovery and observability

    Calendar APIs and webhook handlers

    Webhooks and event reads expose change; deduplication, identity, stale revisions, policy decisions, uncertain updates, and proof need more state.

    Custom response-aware scheduling layer

    Full control over ledgers, policies, retries, reconciliation, traces, support tools, and provider maintenance.

    WonderCal execution direction

    Target release should expose attendee state, waits, decisions, evidence, write outcomes, repair ownership, and completion proof.

    Time to ship

    Calendar APIs and webhook handlers

    Fast for showing response status; slower when a decline must trigger safe cross-company repair.

    Custom response-aware scheduling layer

    Rational when post-invite coordination is infrastructure the product team intends to build and support.

    WonderCal execution direction

    Worth adopting when the live contract removes that response-repair layer without hiding participant or provider truth.

    Frequently asked questions

    When is an AI scheduling agent actually done with a group meeting?

    Define the terminal contract explicitly. For a hard meeting, event creation and invitation delivery may not be enough. A stronger contract verifies the organizer event, required attendee set, current slot and zone, approved optional decisions, and the declared RSVP policy, or returns one bounded exception with an owner and deadline.

    How should a scheduling agent handle a required attendee declining?

    Bind the decline to the correct identity and event revision, evaluate the required-role policy, and choose an authorized path: wait for clarification, use an approved substitute, collect new availability, reschedule, or stop. Refresh evidence, approve one repair, update idempotently, reconcile uncertain writes, and verify the final event.

    Can a proposed new time be accepted automatically?

    Only when settled policy and current evidence authorize it. Treat the proposal as one participant’s bounded availability, normalize its time zone, then check every required person, optional policy, buffers, approval, and organizer authority before changing the event.

    Do webhook notifications contain enough RSVP truth?

    Treat a notification as a reason to fetch and reconcile current provider state. Deliveries may repeat or arrive out of order, and the application still needs participant identity, event revision, required or optional role, response policy, safe side effects, and completion proof.

    Where can developers review WonderCal’s RSVP execution direction?

    Visit WonderCal for AI agents. Verify current event reads, attendee response handling, optional-sync fallback, outreach, idempotency, repair, observability, and stable completion before production use.

    Primary sources

    Related WonderCal reading

    Decline after the event is verified

    Duplicate the notification, propose a new time, expire one reply, hide the reschedule response, and require one stable invitation set before returning completed.

    Review WonderCal for AI agents