Set a program's recurrence rule
Stores a recurrence rule on the program and materializes it into independent sessions (weekly tours, daily timed entry) with blackout dates and one or more times per day. Idempotent: only new occurrences are added; existing sessions are left untouched. Returns the rule and the sessions it produced.
Stores a recurrence rule on the program and materializes it into independent sessions (weekly tours, daily timed entry) with blackout dates and one or more times per day. Idempotent: only new occurrences are added; existing sessions are left untouched. Returns the rule and the sessions it produced.
Authorization
bearerAuth shows:updateA gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).
In: header
Scope: shows:update
Path Parameters
The program id.
Header Parameters
Optional. Send a unique key per logical operation to make retries safe: a retry with the same key replays the stored success for 14 days instead of re-running the write. Reusing a key with a different body returns 400.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
A program's recurrence rule — the domain layer materializes it into independent sessions.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
{ "event_id": "string", "rule": { "frequency": "daily", "interval": 1, "by_weekday": [ 0 ], "timezone": "string", "starts_on": "string", "until": "string", "times": [ "string" ], "duration_minutes": 1, "capacity": 0, "blackout_dates": [ "string" ] }, "sessions": [ { "id": "string", "event_id": "string", "starts_at": "string", "ends_at": "string", "capacity": -9007199254740991, "status": "scheduled", "recurrence_key": "string", "position": -9007199254740991, "tickets_issued": -9007199254740991, "seats_held": -9007199254740991, "seats_remaining": -9007199254740991, "metadata": { "property1": "string", "property2": "string" }, "created_at": "string", "updated_at": "string" } ]}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "invalid_request", "retry": "permanent", "details": null}Get a program's recurrence rule GET
Returns the program's stored recurrence rule (or null). The rule and the sessions it materializes are separate resources — an integrator reads or rewrites the rule here and lists the sessions under /sessions.
Add a session POST
Attaches a session (occurrence) to a program — a datetime slot with its own capacity. Sessions can also be generated in bulk from the program's recurrence rule.