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 and a status badge on a booking card in the Bookings tab.
  • As a status chip on each booking card listed under the calendar’s month grid.
  • As a status chip on the Next Booking card on the syndicate dashboard.
  • As a status stepper (or, for a cancelled, suspended or rejected booking, 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.

Status Meaning Reserves the asset? Can still be changed by the author?
tentative Pencilled in, non-binding. Multiple tentatives can overlap on the same asset at the same time. no yes
pending Awaiting admin approval. Only reached when the syndicate has booking approval enabled, the author is a regular member, and the booking had not ended when it was made. no yes (cancel only)
confirmed Active booking. Blocks other confirmed bookings on the same asset at the same time. yes yes (cancel, update times)
suspended Confirmed booking that is blocked, either because the asset has a grounding cause (an open grounding squawk or an overdue maintenance item) or because the booking overlaps an active maintenance booking. Set automatically; it restores once no grounding cause remains and it no longer overlaps a maintenance window. yes yes (cancel only)
cancelled Cancelled by the author (member or admin). Soft-deleted, kept for audit trail. no n/a
rejected Declined by an admin from the pending queue. Distinct from member-initiated cancellation so the member can see the difference. no n/a
completed Booking has been finalised: its charges are on the ledger. It gets here when the pilot closes their own booking, an admin finalises it, or auto-finalisation does. n/a n/a
  • “In Progress” is a label, not a status. A confirmed booking whose start time has passed and whose end time has not reads In Progress wherever its status is shown: the Bookings tab badge, the calendar’s booking card, the dashboard’s Next Booking card and the detail screen’s stepper. It is still a confirmed booking underneath and changes nothing about what you can do with it. Before it starts and once it has ended it reads Confirmed again, until it is finalised and reads Completed. A tentative, pending, suspended or cancelled booking never reads In Progress, even during its time slot. The label is worked out when the screen is drawn, so a screen left open across the start or end time updates the next time it refreshes (for example when you switch day or tab, or a booking changes).

  • Suspension keeps recorded flights visible. A suspended booking still shows its saved usage logs, with the same charge-visibility rules as before. It does not offer new flight capture, usage editing or finalisation while suspended.

  • 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 bookings skip the pending queue even when approval is required for other members. So does a member’s booking that had already ended when it was made, such as a flight they forgot to book: there is nothing left to approve, and every admin gets a Booking added late notification instead.

  • 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 server-side booking conflict rule only covers confirmed bookings, which is why tentatives can coexist with each other and with pending or suspended bookings on the same slot. A tentative still can’t be pencilled over a confirmed booking, and any other booking is refused by a pending or suspended one. 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.

  • A booking with usage logged against it cannot be cancelled at all, whatever status it is in. The server refuses the cancellation outright, because the flight happened and cancelling would take the record of it with the booking. The app disables Cancel. On your own booking that is in progress it says under it: “Usage has been logged on this booking, so it can’t be cancelled. Close the booking instead to free the rest of the slot.” Otherwise, including an admin viewing someone else’s booking, it shows only the first sentence. The booking is finalised instead.

  • Closing moves a confirmed booking to completed. On your own confirmed booking that has a flight logged, including before its scheduled start, Close booking posts its charges and finalises it. It is offered only while your syndicate lets members close their own bookings (the default). Closed early, the booking ends immediately (never before the latest logged landing or on-blocks time and never after its original end). If the first logged flight departed before the reserved start, the completed booking starts at that departure. The rest of the slot is free for a new booking or for bringing a later booking forward, including an exact matching boundary. The original reservation remains separate for minimum-charge calculations. See Close a booking.

  • A maintenance booking shows no status steps. Nobody requests a maintenance window, so its detail screen shows a Maintenance card with the work description in place of the member booking’s status stepper (Requested, Confirmed, In Progress, Completed). It does not offer I’m flying now; a ferry flight or ground run is still recorded with Log Usage. See Log a ground run or ferry flight.

  • 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. A flight that still reaches a completed booking (from the End Flight card, the Apple Watch or a device that was offline) is kept, and the syndicate’s admins are notified so they can bill it.

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