OpenAssistantAPI

How scheduling works

A privacy-first, multi-agent approach to meeting coordination.

Calendars aren't enough

Calendar apps show you slots. They don't know that Tuesday morning is actually Paul's deep work block, that Justin's assistant already filled his week, or that rescheduling the 10am standup would free up the only overlapping window in the next seven days.

Scheduling requires understanding context, intent, and constraints — and then negotiating across parties who each have their own. That's not a calendar problem. That's an AI problem.

The pipeline

The scheduling skill is a four-agent pipeline. Prime is the orchestrator. It never books anything directly — it delegates to the pipeline and then owns the dispatch.

  1. Calendar Analyst — privileged access, builds context
  2. Forum — blind negotiation, finds overlap
  3. Deadlock Breaker — resolves conflicts with minimum intervention
  4. Dispatch Cart — executes approved actions

The calendar analyst — privileged access

The calendar analyst is the only agent in the pipeline with privileged calendar access. It runs first, before any negotiation happens, and returns a context object that describes the meeting landscape without revealing raw calendar data to downstream agents.

It answers: Does each participant have an AI assistant? Does their assistant have calendar read access? Is this internal (direct book) or external (needs coordination)? Are there shared calendar tools available?

The forum — blind negotiation

The forum is deliberately blind to actual calendar events. It receives anonymized "availability contracts" — time blocks described as available or busy, without any event titles, attendees, or context.

This is a privacy design choice: the forum doesn't need to know you have a standing therapy appointment on Thursdays to find a meeting slot.

The forum returns one of three recommendations:

  • Direct book — overlap found, no conflicts
  • Best window — best overlap given constraints, with trade-offs noted
  • Deadlock — no overlap exists, escalate to deadlock breaker

The deadlock breaker — minimum intervention

When there's genuinely no overlap, the deadlock breaker analyzes calendars to find the minimum set of existing events that could be rescheduled to create a window. It receives only anonymized contracts — it doesn't know what the conflicting events are, just their duration and flexibility signals.

Critically, the deadlock breaker never contacts anyone. It returns a permission request back to Prime, which presents it to the organizer. Only after the organizer approves does Prime add the reschedule and the booking to the dispatch cart and execute them.

Why each agent is blind to the others

The privacy model is intentional. The forum can't see what's on Justin's calendar — it only sees that Thursday 10am is blocked. The deadlock breaker can't see event titles — it only sees durations and block patterns. The calendar analyst sees everything, but only to build the context object.

This is the principle of least privilege applied to multi-agent systems. Each agent gets exactly the information it needs to do its job, and nothing more.

What Prime owns

Prime orchestrates the pipeline but owns the final action. After the forum or deadlock breaker returns a recommendation, Prime:

  1. Presents the proposed booking to the user (via dispatch cart)
  2. Waits for approval
  3. Executes the booking and any associated reschedules deterministically

Nothing is booked without user approval. The user sees the exact time, exact attendees, and exact calendar event content before anything fires.