Skip to main content
PATCH

Update Event

Partially updates an event. Only the fields supplied in the body are written — omitted fields are left unchanged. The event must belong to the organization associated with the API key; cross-org requests return 404 Not Found with no information leak. Requires the events:write scope.

Path Parameters

string
required
Event ID (the canonical 20-character document ID, e.g. AbCdEfGhIjKlMnOpQrSt).

Request Body

At least one field is required. Unknown fields are rejected with 400.
string
Event name (1–200 chars). Triggers a taxonomy + search-relevance re-index in the background.
string
Long-form description shown on the event page. Triggers a re-index.
object
boolean
Set to true to go ahead with a start that opens a refund window (see Moving the date of an event with paid orders). Ignored otherwise.
object | null
Same shape as start. Pass null to clear the end time (open-ended event). When both start and end are present, end must be strictly after start and the timezones must match.
object
Replace any of the venue fields. Existing venue fields not present in the patch are NOT preserved — the full object you supply is what gets written, so include every field you want to keep.
string
Convenience — a https://... URL is stored as the virtual meeting link, anything else is stored as venue.address. If you need finer control over venue fields, use venue instead.
integer
Maximum number of tickets that can be sold. 0 means unlimited.
string
ISO-4217 currency code.
boolean
Hide the event from public listings.
boolean
Whether ticket prices are tax-inclusive.
boolean
Allow attendees to RSVP (maybe / not going) in addition to confirming.
string
Public URL of the cover image.
enum
open or closed. When closed, the public registration form is hidden and new bookings are rejected. Existing attendees are unaffected.
enum
none, email, or email_and_phone. Controls what an attendee must provide on the registration form.
boolean
Absorb the Gomry service fee into the ticket price rather than adding it at checkout.This is the event-wide default. Changing it moves every ticket class that has no setting of its own; a class that has been given an explicit remove_service_fees keeps it and is unaffected — see Update Ticket Class.
object
Restrict registrations to specific contact lists.

Moving the date of an event with paid orders

Moving start by more than 6 hours (earlier or later) while the event has paid orders opens a refund window: everyone who bought before the change can cancel for a full refund, whatever their order’s refund policy, for 48 hours after the change, even past the new start (tickets already checked in are excluded). Your organization covers the fees, every attendee is emailed about the change (buyers with their own amount), and until the window closes payouts can’t take what they can still claim. A claim the balance can’t cover becomes a refund request you can’t decline. Changing only end, or moving the start by 6 hours or less, never opens one; a timezone change that shifts the absolute start by more than 6 hours does. The first call on such a move changes nothing and answers 409 date_change_ack_required with the quote (the same shape as the refund quote: buyers, tickets, the most that could come back per currency, each balance) and window_closes_at. Resend the same body with "acknowledge_refund_window": true to save it. Each qualifying move opens its own window, so moving the date back opens another one. The key needs read access to payments to make such a move; without it the answer is 403 refund_permission_required and nothing changes.

Response

Returns the updated event as serialized by GET /events/{event_id}. When the save opened a refund window, the response also has refund_window: id, closes_at, buyers, tickets and attendees_notified.