AI agents and participant coordination

    AI Scheduling Agent Participant Outreach: Build a State Machine That Waits

    By Tevye Krynski17 min read

    Your agent sent the message. That proves almost nothing. The address may be wrong, the channel may have retried, the participant may have replied in another time zone, and the final reminder may be racing a calendar connection that arrived thirty seconds ago. Participant outreach is not a string-generation task. It is a stateful scheduling subsystem.

    Build the participant-outreach state machine in eight steps

    Use one sixty-minute meeting with three required people, two optional people, Google and Microsoft calendars, one unconnected external participant, one corrected email address, one ambiguous reply, duplicate worker delivery, and a booking deadline three days away.

    1. 1

      Persist a meeting-intent contract before any message leaves

      Record authenticated organizer, purpose, duration, bounded date range, booking deadline, IANA zones, required and optional participants, approved substitutes, organizer calendar, outreach channels, reminder caps, disclosure policy, approval mode, and terminal proof. Give every meeting, revision, and participant a durable identity outside the model transcript.
      • A required person cannot become optional because they did not reply.
      • Every outreach task points to one current meeting revision.
      • The original instruction remains provenance, not mutable workflow state.
    2. 2

      Resolve identity, authority, consent, and channel

      Map each intended human to approved addresses, connected calendar subjects, delegate relationships, and permitted contact channels. Record who authorized outreach, what purpose may be disclosed, which actions a delegate can take, when authority expires, and how the participant can correct or opt out. Treat names and message text as evidence, not identity proof.
      • A shared mailbox is not silently treated as the attendee.
      • Calendar access does not create permission to contact someone through every channel.
      • Participant replies cannot add people or widen the organizer’s instruction.
    3. 3

      Read connected free/busy before creating unnecessary outreach

      Query approved Google and Microsoft free/busy for the bounded interval. Normalize participant ID, source, retrieval time, IANA zone, busy intervals, error state, and expiry. Calendar connection is optional and helpful. A valid connected result can satisfy the availability step without sending another request.
      • Private event titles, descriptions, and attendee lists stay outside agent context.
      • Denied access, missing calendars, throttling, and provider failure remain distinct states.
      • A stale result becomes evidence-expired, not secretly available.
    4. 4

      Create one versioned outreach task for each missing participant

      Build a task with meeting ID, revision, participant ID, purpose-safe wording, duration, bounded date window, local-time display, reply deadline, approved channel, message identity, reminder policy, correction path, and opt-out. Commit the task and its outbox record together before a delivery worker sends anything.
      • A worker restart cannot invent a second logical request.
      • Required and optional participants can receive different deadline treatment under declared policy.
      • The request asks only for availability needed by this meeting.
    5. 5

      Keep delivery, receipt, reply, and parsed availability separate

      Model states such as pending, dispatching, sent, delivery-unknown, delivered, replied, needs-clarification, declined, opted-out, expired, superseded, and closed. A provider acceptance response is not proof that the intended person read the request. A human reply is not usable availability until identity, zone, bounds, and meaning are resolved.
      • Late delivery receipts cannot move a newer task backward.
      • A forwarded response opens one identity exception instead of reassigning the participant.
      • Original wording and normalized intervals remain linked for audit and correction.
    6. 6

      Normalize replies and recompute from current evidence

      Convert explicit windows into instants while preserving the participant’s wording and IANA zone. Ask one narrow clarification for ‘Tuesday afternoon’ without a zone or bound. When a reply, calendar connection, correction, or provider change arrives, append a new evidence revision and invalidate only proposals that depended on superseded facts.
      • A connected calendar arriving after outreach can stop future reminders without erasing the conversation.
      • Duplicate replies collapse under one participant evidence identity.
      • Daylight-saving conversion is recalculated from the named zone and date.
    7. 7

      Run reminders from policy, not model impatience

      Schedule reminders from participant role, deadline, delivery state, local quiet hours, organizer policy, prior contact, and opt-out. Re-check current meeting and evidence revisions before sending. Stop reminders when a usable reply arrives, a calendar connects, the meeting changes, the person declines, authority is revoked, or a human reclaims the thread.
      • Every reminder has a cap and an explicit next state.
      • A required participant’s silence becomes a visible blocking exception.
      • Optional silence cannot block required overlap when policy allows exclusion.
    8. 8

      Close outreach only after one verified booking outcome

      Intersect fresh evidence for every required person, rank optional attendance and preferences afterward, bind approval to the current participant and evidence revisions, and issue one idempotent event write. Reconcile uncertain provider responses, read back required attendees, and close every outreach and reminder task only when invitations are verified or the meeting reaches an authorized non-booked terminal state.
      • No reminder can fire after the meeting is confirmed or canceled.
      • A duplicate agent command returns the existing meeting result.
      • Traces show identity, consent, delivery, reply, reminder, proposal, write, and terminal proof without exposing private content.

    Sent is a transport state, not a scheduling result

    The messaging provider can accept a request while the address is stale, the participant is unavailable, or the message is filtered. Treat transport acceptance, delivery evidence, participant response, parsed availability, and meeting completion as different facts.

    That distinction stops a green message dashboard from hiding a dead meeting. It also gives support a precise answer: waiting on delivery, waiting on a required participant, waiting on clarification, ready for approval, or recovering a calendar write.

    Optional calendar sync changes the path, not the promise

    A connected calendar can reduce participant effort and provide fresh free/busy. It should not be an admission ticket. When a participant does not connect, the same meeting record can hold bounded conversational availability with consent, source, zone, freshness, and expiry.

    The agent should merge those evidence paths without pretending they are identical. Provider free/busy, a participant’s explicit window, silence, and an ambiguous reply each carry different recovery rules.

    Links, polls, sync utilities, and drafted outreach stop at narrower boundaries

    A booking link presents configured slots. A poll gathers votes. A sync utility supplies calendar evidence. A drafting assistant writes the request. Each can help while leaving identity, consent, delivery, clarification, reminders, required-person policy, overlap, booking, and verification to the application team.

    Scheduling execution owns the instruction through participant coordination to invitations. WonderCal’s direction is to supply that execution layer beneath AI agents handling hard meetings across companies and calendar systems.

    Run the delayed-delivery acceptance test

    Delay one delivery receipt, duplicate one worker task, correct one participant address, return one ambiguous reply, connect that participant’s calendar after the first reminder is queued, change a required Microsoft calendar, and hide the event-write response.

    Pass when tasks remain ordered, duplicate sends collapse, the correction creates a revision, clarification stays bounded, the queued reminder stops, stale overlap revokes, the uncertain write reconciles, and one invitation set is verified. Fail when a generated message is counted as progress by itself.

    Compare participant outreach by the state it owns

    The shortest path produces text. The production path governs identity, delivery, evidence, reminders, recovery, and completion for every required person.

    Execution completion

    Model plus messaging API

    Generates and sends messages; meeting-wide overlap, booking, and terminal proof remain outside.

    Custom coordination service

    Can own the full path when participant state, calendar evidence, reminders, booking, and verification are built around it.

    WonderCal execution direction

    Target path carries participant coordination to verified invitations or one bounded exception.

    Cross-company reach

    Model plus messaging API

    Can contact external addresses, with identity and calendar state left to the application.

    Custom coordination service

    The team can join providers, tenants, channels, and delegates under its own policy.

    WonderCal execution direction

    Designed for required and optional people across Google, Microsoft, companies, and unconnected calendars.

    Optional-sync fallback

    Model plus messaging API

    Messages can ask for time, but normalization, consent, clarification, and expiry need workflow state.

    Custom coordination service

    Can combine free/busy and replies after building both evidence paths.

    WonderCal execution direction

    Target model treats calendar connection as helpful while keeping bounded conversation inside the meeting record.

    Recovery and observability

    Model plus messaging API

    Shows message and model results; duplicates, stale tasks, late replies, and booking recovery need more state.

    Custom coordination service

    Full control, with outbox, idempotency, revision, redaction, and support tooling to maintain.

    WonderCal execution direction

    Target release should expose participant state, next action, retries, deadlines, provider side effects, and terminal proof.

    Time to ship

    Model plus messaging API

    Fast for drafted outreach; coordination edge cases remain product work.

    Custom coordination service

    Rational when participant coordination is infrastructure the team wants to own.

    WonderCal execution direction

    Worth adopting when the live contract removes the waiting and repair layer without hiding state.

    Frequently asked questions

    What states should AI scheduling agent outreach track?

    Track at least pending, dispatching, sent, delivery-unknown, delivered, replied, needs-clarification, declined, opted-out, expired, superseded, and closed. Keep transport, human response, parsed availability, and meeting completion as separate facts.

    How should an agent contact a participant without a connected calendar?

    Use an organizer-approved channel and a bounded request that names the meeting purpose, duration, date window, local time, deadline, correction path, reminder policy, and opt-out. Normalize the reply with source, identity, IANA zone, freshness, and expiry.

    How do you prevent duplicate scheduling reminders?

    Give each logical outreach task and reminder an idempotency identity, persist it before dispatch, deduplicate worker delivery, and re-check the current meeting and participant revisions immediately before sending.

    Should a reminder still send after the participant connects a calendar?

    Not when the new connected free/busy supplies current evidence for the same meeting. Append the evidence, supersede the waiting task, cancel queued reminders, and recompute from the current meeting revision.

    Where can developers review WonderCal’s participant coordination direction?

    Visit WonderCal for AI agents. Test current identity, consent, calendar, outreach, reminder, recovery, observability, and verified-booking behavior before production use.

    Primary sources

    Related WonderCal reading

    Make every participant wait visible

    Delay delivery, connect a calendar mid-thread, duplicate a reminder, and hide the booking response. Require one current state and one verified invitation set.

    Review WonderCal for AI agents