Every desk reservation passes through four stages. The difference between a functional desk reservation system and a chaotic one is whether each stage has defined rules and automated enforcement.
**Stage 1: Request.** An employee selects a desk for a date and time on the floor plan, in the web app or on Android or iOS. Before anything is saved, the request is checked against the workspace policy. Is the date inside the allowed booking window? Is the booking length within the minimum and maximum? Is the desk reserved for a team the employee does not belong to? Does the employee already have a desk that day? Requests that break a rule are stopped with a clear explanation rather than turning into conflicts later.
**Stage 2: Confirmation.** The reservation is recorded and the desk is held. This is also where many systems are weakest under load: two people choosing the same desk at the same instant can both receive a confirmation. DeskHybrid enforces one-booking-per-desk-per-time in the database itself, so when two requests collide, exactly one succeeds and the other person is told the desk was just taken. A confirmed reservation, however, is still not confirmed attendance -- which is why the next stage exists.
**Stage 3: Check-in.** When the check-in window opens, the employee gets a notification and confirms their presence, either from the desk dialog on the booking map or by scanning the desk's QR code in the mobile app. If someone books after the window has already opened, the Android and iOS apps offer check-in right away. Workspaces that want every confirmation to happen physically at the desk can require QR check-in, in which case only a scan of the desk's code counts.
**Stage 4: Release.** If check-in does not happen within the configured delay after the booking starts, the reservation is marked as a no-show, the employee is notified, and the desk returns to the available pool. Automatic release is what stops a single morning no-show from blocking a desk for the rest of the day.