Skip to main content
The POST and PATCH endpoint pages document every field. This page covers the behavior behind them — the parts that will surprise you if you assume a plain CRUD resource.

Creating

The response carries the new event’s id and grantedTo:
grantedTo is how many people can now see the event. Your key’s user is one of them; the rest are their approvers.
grantedTo: 0 means the event exists but nobody can see it. Enterprise events are private by default and visibility is derived from the creator’s group memberships — so a key whose user belongs to no group produces an invisible event. It is not an error and the event is real; an administrator needs to add that user to a group. Check this value rather than assuming a 201 means the event is usable.
The organization comes from your key, so any organizationId in the body is ignored.

Updating

PATCH /v1/events/{id} takes only the fields you are changing.
Three rules govern every update:
A field you leave out is not touched. Sending null clears it. That distinction is deliberate — there is no way to accidentally blank a field by omitting it, and no way to clear one by guessing at an empty value.
If any field is rejected, nothing is written and the response lists every problem at once. A 400 therefore always means the event is untouched, so it is safe to correct and retry without checking what partially landed.
location is derived from formattedLocations, and event_dates from the union of your guestroom nights and agenda date ranges. Neither is accepted as input — send the inputs and the derived values follow.

Editing the agenda

The agenda is edited by operation, not by replacement. Send agendaOperations with add, update or remove, each addressed by a session id from a prior GET:
Replacing the whole agenda to change one session is both expensive and an easy way to silently drop the ones you forgot, so the API does not offer it. An unknown sessionId is an error rather than a silent no-op.

Two refusals worth planning for

A cancelled event cannot be edited. You get 409; reopen it in Nowadays first. Shrinking the agenda dates is refused if any session would lose a date. Also 409, with the affected sessions named in orphanedSessions:
The dashboard drops such sessions after an “are you sure” prompt. An API caller has no equivalent prompt, so the API refuses instead — move or remove the sessions deliberately, then retry.

Limits

A single request is bounded so one call cannot monopolise the service: Exceeding one returns 400 with the offending field named, and — as always — nothing is written.