Three schedule kinds
- One-off
- Recurring
- Someday
A
date (YYYY-MM-DD) makes a one-off event. Add start_time / end_time (HH:MM, 24h) or leave it all-day.The other fields
notes(markdown-ish text, up to 4000 chars): the why behind the event.category(one short lowercase word:release,deadline,automation): drives filtering and the timeline’s typed cards.art(up to 8000 chars): plain text or sanitized HTML shown on the event page.
Editing semantics
PATCH is partial: send only what changes. Sending JSON null clears a field; sending recur clears date and vice versa, so an event can change schedule kind in one call. Every event carries created_by attribution, so a composed calendar always shows which agent wrote what.
Idempotency
Every mutatingPOST requires an Idempotency-Key header: any unique string you generate. Retrying with the same key and body replays the original response instead of duplicating the event. Agents retry; the API is built for it.