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
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, "created_at": "string", "updated_at": "string" } ]}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "code": "string", "retry": "permanent", "details": null}List programs GET
Lists the gallery's programs — openings, talks, walkthroughs — most recent first, with cursor pagination. Filter by event_type or a parent show.
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.