BillyDocumentation

Update an event

Partially updates an event: only the provided fields are modified, omitted fields are left unchanged. The venue address is replaced as a whole and cannot be null (every event needs a displayable venue address); title and eventTimezone cannot be null either. Tags are replaced as a set: the provided list becomes the event's tags (an existing organization tag is reused when the normalized form matches, otherwise it is created; tags no longer present are unlinked from the event but stay available in your organization), an empty list removes all tags and an omitted tags field leaves them unchanged. Returns 404 when the event does not exist.

Preview release

This operation is only available on the preview release target — send Billy-API-Version: preview to reach it. Preview has no stability promise: its routes and payloads can change without notice, so pin a dated release before you depend on one. The playground below sends a real PATCH request to the live API with your own key, and will create or modify actual data.
PATCH
/v1/events/{event_id}

Partially updates an event: only the provided fields are modified, omitted fields are left unchanged. The venue address is replaced as a whole and cannot be null (every event needs a displayable venue address); title and eventTimezone cannot be null either. Tags are replaced as a set: the provided list becomes the event's tags (an existing organization tag is reused when the normalized form matches, otherwise it is created; tags no longer present are unlinked from the event but stay available in your organization), an empty list removes all tags and an omitted tags field leaves them unchanged. Returns 404 when the event does not exist.

Authorization

HTTPBearer
AuthorizationBearer <token>

API key authentication. Format: Bearer billy:o:<organization_id>:<api_key>

Example: Bearer billy:o:yyyyyyyyyyyyyyyy:xxxxxxxxxxxxxxxxx

In: header

Path Parameters

event_id*Event Id

Header Parameters

Billy-API-Version*string

Requested API version. Current context: preview.

Default"preview"

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Request body for PATCH /v1/events/{event_id}.

Partial update: an omitted field is left unchanged (see the PATCH routes ADR). OmittedField is excluded from the JSON schema so the public OpenAPI shows plain optional fields.

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/events/string" \  -H "Billy-API-Version: preview" \  -H "Content-Type: application/json" \  -d '{}'
{  "id": "evt_64f1c2a9e8b4a12f9c0a1234",  "createdAt": "2025-01-15T10:42:31.000Z",  "updatedAt": "2025-01-20T09:12:05.000Z",  "title": "Electro Night Festival",  "description": "An immersive electronic music experience with top international DJs.",  "imageUrl": "https://cdn.example.com/events/electro-night/banner.jpg",  "venueName": "La Grande Halle",  "venueAddress": {    "addressLine1": "211 Avenue Jean Jaurès",    "addressLine2": null,    "city": "Paris",    "postalCode": "75019",    "countryCode": "FR"  },  "eventTimezone": "Europe/Paris",  "currency": "EUR",  "sessionCount": 1,  "firstSessionStartAt": "2025-03-21T19:30:00+01:00",  "lastSessionStartAt": "2025-03-21T19:30:00+01:00",  "nextSessionStartAt": null,  "nextSessionId": null,  "tags": [    "concert",    "electro"  ]}