AI calendar writes need a control point

Stop AI agentsfromdouble-bookingyour calendar.

Your agents can all see an open slot. They cannot see each other. Openavail gives every agent one place to ask, one set of rules to follow, and one receipt for every calendar decision.

2-minute connectNo blind writesAudit trail included

Transport

REST + MCP

Decision

Deterministic

Hold TTL

Atomic

Audit

Queryable

[LIVE]contested slot · Tue 09:00

Incoming calendar writes

Same owner. Same slot. Different agents.

arbiter p99 < 200 ms
09:00:00.014[REJ]sales-botdemo follow-up · same slot · lower priority
09:00:00.019[CTR]recruiting-botcandidate screen · countered · 11:30 or 14:00
09:00:00.021[ACC]personal-asstboard prep · accepted · event written
09:00:00.027[PMT]focus-botdeep work block · preemptable · displaced

Decision receipt

personal-asst wins by meeting class priority.

3 other agents receive a deterministic answer: reject, counter-propose, or preempt.

Calendar write

1

approved event reaches Google

01The Broken Default

Calendar APIs know state.
Agents create intent.

Direct provider access works until two agents check the same free slot, make different promises, and race to write. The calendar accepts the winner. It does not explain why.

01

The slot looked free

Two agents checked the same window before either write landed.

02

The promises diverged

Sales, recruiting, and a personal assistant each made a different commitment.

03

The human cleaned it up

The calendar owner found the conflict later, with no useful receipt for why it happened.

02The Control Plane

Write gate

Every agent enters the same decision path.

[LIVE]

1 · Check

4 agents ask

Ask before writing

Availability, owner context, and priority rules resolve before Google Calendar changes.

Output

live slot state

2 · Hold

1 hold opens

Reserve atomically

The winning request receives a short-lived hold so no other agent can promise the slot.

Output

hld_8XnPq7r3

3 · Commit

1 event writes

Write with a receipt

The approved booking writes once. Every other agent gets a deterministic answer.

Output

dec_8XnPq7r3

One narrow place where every agent has to ask.

Openavail turns calendar access into an explicit decision: accept, reject, counter, or preempt. The result is useful for agents and readable for humans.

Decision receipt

signed
Winner
personal-asst
Reason
meeting class priority
Others
reject · counter · preempt
Audit
dec_8XnPq7r3
Working hoursMeeting class priorityHuman-created eventsPreemption permissionCounter-proposed slotsAudit retention
03API Shape

If your agent speaks HTTP, it can speak Openavail.

REST is the baseline. MCP tools and the TypeScript SDK sit on top of the same deterministic availability and hold flow.

▸ REQUEST

curl -X POST https://api.openavail.com/v1/availability \
  -H "Authorization: Bearer ak_01HXYZ..." \
  -H "Idempotency-Key: board-prep-0900" \
  -d '{
    "owner_email": "[email protected]",
    "meeting_class": "critical",
    "duration_minutes": 30,
    "window": {
      "start": "2026-06-04T09:00:00Z",
      "end": "2026-06-04T17:00:00Z"
    }
  }'

◂ RESPONSE

{
  "decision": "accepted",
  "hold_id": "hld_8XnPq7r3",
  "expires_at": "2026-06-04T09:05:00Z",
  "audit_id": "dec_8XnPq7r3",
  "reason": "meeting class priority"
}
04Launch Path

Give every calendar write a reason before it becomes an event.

Start with one owner calendar, one agent, and a small rule set. Add more agents when the audit trail shows exactly how they behave.