Skip to content

Eagerly publish a variant's departures from its recurrence rule

POST
/departure-materializations
curl --request POST \
--url https://quikstik-core.fly.dev/departure-materializations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "offering_variant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "window_start": "example", "window_end": "example" }'

Projects the variant’s persisted timezone-aware recurrence over a bounded, inclusive civil-date window (max 366 days) and idempotently ensures each occurrence as a departure (natural key per — re-running a window is a no-op). Start-times only: capacity remains the pool’s authority. DST-gapped occurrences are refused by name in the report, never shifted. On-demand variants refuse (on_demand_variant); an unconfigured variant refuses distinctly (recurrence_not_configured); an unknown variant is 404.

Media typeapplication/json
object
offering_variant_id
required
string format: uuid
window_start
required

First civil date (YYYY-MM-DD, inclusive, in the rule’s zone).

string
window_end
required

Last civil date (YYYY-MM-DD, inclusive). Window ≤ 366 days.

string

Example generated

{
"offering_variant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"window_start": "example",
"window_end": "example"
}

Materialization report.

Media typeapplication/json
object
created
required
integer
existing
required
integer
refused
required
Array<object>
object
civil_date
required
string
clock
required
string
reason
required

E.g. dst_gap — refused by name, never shifted

string

Example generated

{
"created": 1,
"existing": 1,
"refused": [
{
"civil_date": "example",
"clock": "example",
"reason": "example"
}
]
}

Unknown variant in this tenant.

Refused (on-demand variant, unconfigured recurrence, or invalid window).

Backend unavailable.