View Occurrence Detail
Open a materialised public service occurrence for Harbor Soho and review the header, reservation list, table timeline, waiting-list queue and operational summary without changing bookings or table assignments.
In this article
Use this guide when a Harbor Soho operator needs to inspect one public service occurrence before or during service. The read view brings together service state, reservations, table usage, waiting-list pressure and operational totals.
The same screen can expose management controls for users with `reservation:manage`, but this guide treats the page as read-only. Creating reservations, editing rows, changing acceptance state, assigning tables and applying optimisation layouts belong to separate guides.
Before you start
- Sign in with Harbor Demo Group selected and Harbor Soho as the active location.
- Open a materialised public service occurrence. For the main GB capture use `${RESERVATION_OCCURRENCE_ID}`; use `${BOOKING_WAITLIST_OCCURRENCE_ID}` only for the waiting-list example.
- The occurrence must belong to a public service calendar event. Internal services are hidden from reservation operations.
- `reservation:view` or `reservation:manage` is required to load the occurrence, reservations and table assignments.
- `layout:view` is needed for the table timeline layout, and `customer:view` is needed for customer names and phone numbers.
- A `layout_id` on the occurrence or service event is needed for table lanes. Without readable layout tables, the Timeline tab shows its no-tables state.
Instructions
- 1.
Open the occurrence
From the reservations calendar, open the Harbor Soho service occurrence, or use `${APP_DEEPLINK_BASE}${ORG_ID}/${LOCATION_ID}/reservations/${RESERVATION_OCCURRENCE_ID}?returnRoute=LocationReservationsCalendar&returnMode=week`. The page opens the materialised Soho lunch service occurrence in read mode.
- 2.
Confirm the header and state
Check the service title, occurrence date, time range and state badge before reviewing rows. The badge reflects booking mode, acceptance state, fullness and optimisation state, so the floor team can see whether the service is open, full, completed or waiting-list led.
- 3.
Review the List tab
Use the default List tab to review reservation rows sorted by start time, including customer, phone, status, party size, assigned tables and time. Local search and status filters narrow the loaded rows, and refresh refetches reservations and assignments without changing data.
- 4.
Review the Timeline tab
Open Timeline to see reservations mapped onto layout tables and zones. The board separates assigned table lanes from unassigned reservations and can highlight active table use from service-session and ticket reads when those permissions are available.
- 5.
Check the waiting-list queue
For a `waiting_list` booking mode occurrence, open `${BOOKING_WAITLIST_OCCURRENCE_ID}` and review Timeline. Waiting-list reservations without assigned tables, such as Sara Molina in the GB runtime, appear in the queue rather than on a table lane.
- 6.
Read the Summary tab
Open Summary to review reservation counts, guest totals by status and arrivals by time band. This gives shift leads a quick view of expected service load before or during the occurrence.
- 7.
Stay within read boundaries
Use this action for inspection only. Creating reservations, editing rows, changing acceptance state, saving table assignments, applying optimisation layouts or resolving unmaterialised occurrences are separate actions.
Validations and limits
- If `selectedOrgId`, `selectedLocationId` or `occurrenceId` is missing, the page shows a not-found state instead of loading detail data.
- If the user lacks `reservation:view` and `reservation:manage`, the occurrence, reservation and assignment queries are not enabled.
- The backend treats the occurrence as not found when it is blank, outside the selected location, not a service event or not effectively public.
- Reservation and table-assignment reads are scoped to the selected location before the `occurrence_id` filter is applied.
- The Timeline tab requires a readable layout. While loading it shows the layout loading state; without layout tables it shows the no-tables state.
- Search and status filters run client-side after the occurrence reservation list is loaded.
- Waiting-list, cancelled and no-show reservations are excluded from physical-table arrival metrics.
- The GB main occurrence starts on 23 June 2026 at 12:30 UTC, so captures on or after 25 June 2026 can show past-occurrence behaviour and historical layout loading.
Expected result
The operator has a complete read view of the Harbor Soho occurrence: expected guests, service state, table distribution, waiting-list pressure and arrival load, without modifying reservations or table assignments.