Each Gnesi address has a calendar. You and an agent credential on that address see and change the same appointments. The agent uses your calendar. It cannot book onto someone else's calendar.
The inbox and the API read and write that calendar. There is not a second copy for the agent.
An appointment has a title, a start, an end, private notes, and optional guests. Notes stay on the organizer's appointment. A guest's copy has the title, the times, the organizer's address, and the status.
The organizer's appointment is confirmed. A guest's invite is invited until they answer. Accept sets confirmed. Decline sets declined. Appointments may overlap. The end is after the start.
Guests
A guest is a Gnesi address. They get an invite on their own calendar. They accept or decline. They cannot change the time. A change the organizer makes is copied onto each guest's invite.
If the guest's door would refuse a new contact, that guest is not added. The organizer's appointment still exists.
Cancel and time
Cancel keeps the row and marks it canceled. The same mark is copied onto each guest's invite.
Times are instants. An appointment has no payment. It has no recurrence, reminder, all-day span, location, or calendar outside Gnesi.
The HTTP routes start at List appointments.