Gallery Platform API
Reference

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.

PUT
/gallery/programs/{programId}/recurrence

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:update
AuthorizationBearer <token>

A gallery API key, sent as Authorization: Bearer gpk_… (or the x-api-key header).

In: header

Scope: shows:update

Path Parameters

programId*string

Header Parameters

Idempotency-Key?string

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"    }  ]}