create_event and update_event are not plain CRUD. This page covers the
behavior behind the arguments — the parts that will surprise an agent that
assumes otherwise.
Creating
create_event returns the new event’s id and grantedTo:
grantedTo is how many people can now see the event. You are one of them; the
rest are your approvers.
The organization comes from your session, so it is never an argument.
Updating
update_event takes only the fields you are changing, under changes. Three
rules govern every update:
Omitted means unchanged; null means cleared
Omitted means unchanged; null means cleared
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.All or nothing
All or nothing
If any field is rejected, nothing is written and the error lists every
problem at once. A rejected update therefore always leaves the event
untouched, so it is safe to correct and retry without checking what
partially landed.
Some fields are derived, not writable
Some fields are derived, not writable
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. SendagendaOperations with add, update or remove, each addressed by a session
id from a prior get_event:
sessionId is an error rather than a silent no-op.
Two refusals worth planning for
A cancelled event cannot be edited. Reopen it in Nowadays first. Shrinking the agenda dates is refused if any session would lose a date. The affected sessions are named inorphanedSessions:
Limits
A single call is bounded so one request cannot monopolise the service:
Exceeding one is rejected with the offending field named, and — as always —
nothing is written.