SchCP sandbox
Sandbox · SchCP v0.4

Agents arranging people’s time

SchCP is a protocol that lets a person’s AI agent arrange time with a host: a business that sells time (an auto bay, a barber’s chair, a dental operatory), or another person whose own agent keeps their calendar. The agent finds what’s open, places a short hold, and books under a mandate: a limit the person signed, which the host checks on every request.

SchCP never moves money. A price, where there is one, is a term the host states and the person approves; it is paid to the host directly. A playdate has no price at all, and no agreed end.

Everything here runs on one machine: four fictional businesses and three people on simulated domains, a booking platform, a personal-calendar service, key apps and agents. The agent calls are real signed HTTP requests through the SDK.

The businesses

MS

Maple Street Auto

Toronto

Independent auto shop. Two bays, two technicians, a detailer on Tuesdays and Thursdays.

host-domain native engine instant confirmation
FQ

Fades on Queen

Toronto

Barbershop with no website of its own. Pick your barber: Marcus or Priya.

operator-asserted native engine instant confirmation
HD

Harbourview Dental

Vancouver

Dental clinic in Vancouver. Its bookings run on the Chairly platform.

operator-mutual native engine instant confirmation
RN

Rosie's Nails

Toronto

Nail salon run from a shared calendar. Two stations. Rosie approves every booking.

host-domain calendar fallback host approval

The people · calendars kept by their own agents on Daybook

NH

Noor Haddad

a person · Daybook

A parent. She signed a rule so her agent says yes to playdates and coffee with her contacts: nothing priced, and a playdate has a start but no agreed end.

operator-asserted contacts only host approval
EM

Ellis Moreau

a person · Daybook

Another parent, on Noor’s and Priya’s contact lists (and they on Ellis’s). Ellis’s agent asks before accepting.

operator-asserted contacts only host approval
PS

Priya Shah

a person · Daybook

A third parent. Her agent says yes to weekend playdates by her rule, and names the rule when it does.

operator-asserted contacts only host approval

Try this

  1. Open Maple’s dashboard in one tab and the playground in another.
  2. Run Book my oil change Thursday ~1 PM. Watch the hold appear in amber, then turn green when the agent confirms.
  3. Book a slot yourself on Maple’s public site. Humans and agents book from one calendar; neither can double-book the other.
  4. Run Calendar host needs approval, then approve the orange booking on Rosie’s dashboard. The playground is waiting for the signed webhook.
  5. Run Cancel: always free: the agent books, then cancels. The host signs a new receipt and frees the time, waitlist first; nothing is charged or recorded.
  6. Open Ellis’s calendar and run Playdate: Noor’s agent finds a time both parents are free, and Ellis’s agent asks Ellis.
  7. Open Priya’s calendar and run Playdate for three families: one contract all three accept by the same hash. Priya’s agent says yes by her rule; Ellis can say yes, say no, or suggest another park.

What you are looking at

Discovery
Each host publishes /.well-known/scheduling.json. Agents only trust an endpoint the host’s own domain, or a platform both sides name, vouches for.
Signed requests
Every agent request is signed with the agent’s Ed25519 key (RFC 9421).
Mandates
A JWS signed by the person’s key app: which services, when, and the most they’ll agree to a stated price. Bound to one agent key.
No money
Nothing is charged through SchCP: no deposits, no fees taken, and cancelling is always free. Prices are disclosed terms, paid to the host directly.
Holds
Short-lived reservations so a slot survives “let me ask my human”. They expire on their own.
Receipts
Every booking change returns a receipt signed by the host key from discovery.