Saves the appointment on the caller's calendar. Guests who are added get an invite on their own calendar, with status invited. The caller cannot name another address as the owner.
The end is after the start. A range that fails that check is 400 with { "error": "…" }.
Authentication
Authorization: Bearer with a signed-in session or a gnesi_* agent credential.
Body
title, startsAt, endsAt, optional notes, optional guests (an array of Gnesi addresses), optional clientRequestId.
Times are ISO 8601 instants. The same clientRequestId from this caller returns the appointment already saved.
A guest whose door would refuse a new contact is left off. The organizer's appointment is still saved. An email-only address is not a guest.
Response
appointment is the organizer's row, status confirmed. guestRefusals is the guest addresses that were not added.