Delete an occurrence
Soft-deletes an occurrence. The actor must be an owner or admin of the event.
/occurrences/{occurrence_id}Soft-deletes an occurrence. The actor must be an owner or admin of the event.
Authorization
bearerAuth JWT issued by IdentityX, signed with Ed25519
In: header
Path Parameters
Occurrence ID.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X DELETE "https://example.com/occurrences/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"program_id": "70c1146b-e933-4cb2-a789-bbca5312b517",
"edition_id": "aeda7fca-56fe-426a-8c37-1876faaaf005",
"starts_at": "2019-08-24T14:15:22Z",
"ends_at": "2019-08-24T14:15:22Z",
"max_capacity": 0,
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"deleted_at": "2019-08-24T14:15:22Z"
}{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 401,
"title": "Unauthenticated"
}{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 403,
"title": "Insufficient Role"
}{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 404,
"title": "Not Found"
}{
"detail": "string",
"instance": "../dictionary",
"errors": [
{
"field": "string",
"message": "string"
}
],
"type": "http://example.com",
"status": 500,
"title": "Internal Server Error"
}Update an occurrence PATCH
Updates occurrence times and capacity. The actor must be an owner or admin of the event.
Sign the caller up for an occurrence POST
Self-service registration (activity registration feature). The caller must hold a confirmed (paid or free) ticket in the occurrence's edition, and the activity's access rules apply: `staff_only` programs require an event staff role, and `min_access_level` gates on the ticket's access level. Inside a transaction the occurrence row is locked, occupancy is checked against `max_capacity`, and a duplicate active registration is rejected (409) — the partial unique index (`uniq_program_participations_active_per_occurrence_attendee`) is the concurrency backstop. Registering is always a fresh row: the participation ledger is append-only, cancelled rows free the slot.