Skip to content

Booking statuses

A booking status is the single word that describes where a booking is in its lifecycle. Every booking has exactly one status at any time. The status determines whether the booking reserves time on the asset, whether it appears on the calendar, and whether it can still be changed.

Status is read by every member who can see a booking. Only specific transitions are available to specific roles — see the tables below and the Role capability matrix.

A booking’s status is shown:

  • As a coloured stripe on the left of a booking card in the Bookings tab.
  • As a label on the Booking detail screen.
  • As a pattern on the calendar — confirmed bookings are solid, tentative bookings are diagonal-hatched.

There are seven booking statuses.

StatusMeaningReserves the asset?Can still be changed by the author?
tentativePencilled in — non-binding. Multiple tentatives can overlap on the same asset at the same time.noyes
pendingAwaiting admin approval. Only reached when the syndicate has booking approval enabled and the author is a regular member.noyes (cancel only)
confirmedActive booking. Blocks other confirmed bookings on the same asset at the same time.yesyes (cancel, update times)
suspendedConfirmed booking that is blocked because the asset has a grounding squawk. Automatically set while the squawk is open; clears when the squawk is resolved or deferred.yes
cancelledCancelled by the author (member, admin, or owner). Soft-deleted — kept for audit trail.no
rejectedDeclined by an admin from the pending queue. Distinct from member-initiated cancellation so the member can see the difference.no
completedBooking has finished and usage has been logged and finalised.
  • Initial status rule. When a member creates a non-tentative booking, the status is set to pending if the syndicate requires booking approval and the author is a regular member; otherwise it is confirmed. Admin and owner bookings skip the pending queue even when approval is required for other members.
  • Tentative opt-in. Tentative is only reached when the author explicitly toggles “Pencil in (tentative)” in the create booking dialog. It is never the default.
  • Only confirmed bookings occupy the asset. The database-level exclusion constraint only covers confirmed bookings, which is why tentative and pending bookings can coexist with others on the same slot. See Conflict detection.
  • Cancellable statuses. tentative, pending, confirmed, and suspended can all be cancelled. Cancellation is a one-way transition — a cancelled booking cannot be un-cancelled; create a new one instead.
  • Rejected is admin-only. A member cannot “reject” their own booking; they cancel. Rejection is something an admin does to someone else’s pending booking, and it shows up in the author’s Rejected tab.
  • Completed is terminal. A completed booking has been finalised. Any correction is made by creating offsetting transactions, not by moving the status back.

For why pending and confirmed are separate concepts, see Tentative vs confirmed bookings.