When to use it
- “The dinner moved to 7pm, same night.”
- “Add the venue: Foreign Cinema, Mission St.”
- “Our RSVP target for the summit is 150.”
- “The end time was a guess. It actually ends at 10.”
Parameters
Send only the fields that change.Workflow
There is no preview step. One call applies the edit.1
Confirm the change with the user
Send only the fields that change. Re-sending a value create_collab assumed (an end it defaulted) confirms it: the field comes back
applied and its origin becomes user_stated. So send only what you mean to state.2
Generate a fresh client_request_id
On a transport error, retry with the SAME id: a committed edit is replayed (
idempotent_replay: true), never repeated. Reusing the id for a different edit is refused. An edit that wrote nothing does not consume the key.3
Read fields back to the user
Every field you sent comes back in
data[0].fields with a status. Report each refused field and its reason.Platform-owned fields are refused
A collab tied to a Luma, Splash or Zuddl event, or imported from a provider’s public page, has its name, dates, time zone, location and landing page owned by that platform, which rewrites them on its next import or sync. A different value for one of those is:- returned in
fieldsas{"field": ..., "status": "refused", "reason": "provider_owned", "provider": "luma" | "splash" | "zuddl"}, - reported as a
partial_coveragegap (“Collab fields owned by the event platform were not changed”), sostatusispartial, - NOT saved. The fields the platform does not own (
region,rsvp_target) are still saved.
Response
The shape below is from the contract and the code (tools/update_collab.py, collab-write-contract.json). A success was not captured live, because this tool edits a real collab.
A time edit moves the start and end everywhere at once, so list_events, get_event_details and the dashboard agree.
Rules the agent must follow
- Change only these eight settings (plus the target spec). Briefs, drafts and event framing go to save_event_context; a new event goes to create_collab.
- Never guess a time zone from an offset or a place.
- To move an event later than its stored end, send
event_startandevent_endtogether. A loneevent_startafter the stored end is refused, naming that end. - Report every
refusedfield to the user, with the platform named. Never say a refused change was saved. - This tool never edits the description, authored context, cost, rep, data-collection window, sign-ups, roster, partners or Playbook, and never touches the event on the event platform.
Errors and gaps
Trimmed from a real call with no arguments today:
Related
- create_collab
- save_event_context, for briefs and drafts
- archive_collab, to remove a collab
- Playbook: Invite sprint