Event Lifecycle
Draft, published, postponed, cancelled, completed, archived — and what each transition does to buyers
An Event has four independent states, not one. Whether it is published, where its schedule stands, whether sales are paused, and whether Ulsav has restricted it are tracked separately.
Knowing which dimension a change belongs to makes the transitions predictable.
The four dimensions
| Dimension | Values | Changed by |
|---|---|---|
| Publication | Draft, published, archived | Publish, archive |
| Schedule | Scheduled, postponed, cancelled, completed | Postpone, resume, cancel, complete |
| Sales | Event: scheduled, open, paused, closed. Pass: scheduled, open, ended, cancelled | Pause or resume sales; the rest derives from state and windows |
| Moderation | Active, under review, suspended, banned | Ulsav staff only |
Moderation is Ulsav's; the rest are yours. Visibility covers what restriction does to public pages.
Publication and schedule
Diagram source
stateDiagram-v2
[*] --> draft
draft --> published: publish
published --> archived: archive
[*] --> scheduled
scheduled --> postponed: postpone
postponed --> scheduled: resume
scheduled --> cancelled: cancel
postponed --> cancelled: cancel
scheduled --> completed: complete after end
postponed --> completed: complete after end
cancelled --> [*]
completed --> [*]Publication and schedule are independent: an archived Event keeps its schedule value, a cancelled one stays published until archived.
Rescheduling does not move the schedule state. A postponed Event that is rescheduled with new dates stays postponed until you resume it.
Moving the dates
Three operations change when an Event happens, and they differ in how much else they touch.
| Operation | Allowed from | What it changes | Written record |
|---|---|---|---|
| Postpone | Published, scheduled or postponed | Schedule to postponed; dates optional | Public revision and notice |
| Resume | Published, postponed | Schedule back to scheduled with new dates | Public revision and notice |
| Reschedule | Published, scheduled or postponed | Dates, every Session, selected Pass windows | Public revision and notice |
Postponing may leave the date unknown: omit both dates and the original schedule stays on display. Passes stay valid.
Resuming requires both dates, with an end after the start.
Rescheduling takes the complete final Session plan, so no Session is left behind. Unsubmitted Pass windows are kept, and one that would fall past the new Event end rejects the plan. The notice uses the new date in the Event's zone.
A reason is optional, capped at 500. Omit it and the notice says something plain.
Changing the place
Relocating is the venue counterpart of rescheduling. It changes the mode, venue, city, state, country, and online link, and records a public revision.
Use it instead of a general edit: a direct venue edit is accepted but writes no revision, so buyers never learn the room moved.
Sales, on and off
Pausing sales is reversible and immediate. It stops new checkouts without changing the schedule, the Passes, or the public page, and discovery marks the Event paused.
Pausing is refused on cancelled or completed Events. Resuming reverses a pause, but it cannot reopen a Pass whose sale window has already ended.
The Event's sales state is derived, never stored: scheduled before the start, open after it, paused while the flag is on, and closed for a draft, archived, cancelled, completed, or restricted Event.
Sales stop for three separate reasons, and only one of them is a switch you own:
| What stops a sale | Where it lives | Reversible |
|---|---|---|
| The Event is paused | A stored Event flag | Yes, by resuming |
| The Pass window is over | Derived from the Pass's start and end | Only by editing the window |
| The Event is a draft, archived, cancelled, completed, or restricted | Event state | No |
Each Pass then reports one of four sale states:
| Pass sale state | Meaning | Checkout |
|---|---|---|
| Scheduled | The window has not opened | Refused |
| Open | Inside the window | Allowed, unless the Event blocks checkout |
| Ended | The window has passed | Refused |
| Cancelled | The Pass itself was cancelled | Refused |
There is no "sold out" state: when capacity runs out the checkout is refused, and the Pass still reads Open.
A Pass reads Scheduled until its own window opens, which can be later than the Event start. The Pass window decides whether the Pass is open; the Event can still refuse checkout while it is paused, draft, archived, or restricted.
Paused is an Event-level flag, never a Pass state.
Cancelling
Cancellation is irreversible. Preview it first: it reports active and confirmed registrations, confirmed and paid Orders, in-flight payments, check-ins, and the refundable amount.
Cancelling then does all of the following.
- Flips the schedule to cancelled and records the reason.
- Ends every active Pass so nothing can be bought.
- Cancels every registration that is not already cancelled, drafts included.
- Refunds every paid Order in full, including the platform fee.
- Records a public revision so affected buyers see what happened.
Refunds retry in the background; if a provider is unavailable, the cancellation still commits and reconciliation is reported as pending.
Completing and archiving
Complete is only allowed after the end time. It closes sales and records a public revision.
Archive removes a published Event from normal views without deleting it: readable by ID, gone from public pages and discovery, and irreversible.
The change history
Every change that matters writes a revision; the public ones double as participant notices.
| Kind | Public notice |
|---|---|
| Published | Yes |
| Postponed, resumed, rescheduled, relocated | Yes |
| Session schedule changed | Yes |
| Cancelled, completed | Yes |
| Archived | No |
Notices appear in order, so an old link tells the story: it moved, moved again, then was cancelled.
MarchPublished
JunePostponed, no new date
JulyResumed on new dates
SeptemberCompleted
Related
- Publishing — the gate that must pass first
- Visibility — what buyers see in each state
- Sessions — the parts a reschedule must include
- Cancellation — refund obligations in detail
- Event status — the state reference