Filters + Show + the range/timezone meta line follow the shared contract established on comp-visits-calendar-grid.html (visits.calendar.controls) — not restated here. Today in every figure is Wed 8/26.
1 · The board — three zones
Needs action3
outcome unknown6d
Aug 20 — 2:30 PM
Marcus LeeKarla Sellers
outcome unknown4d
Aug 22 — 11:00 AM
Priya NairUnassigned
outcome unknown2d
Aug 24 — 4:15 PM
Todd BonzalezSonya West
8/24Mon
8/25Tue
8/26Wed123
outcome unknown8:30 AM
Sales — 30 min — 8:30 AM
My insurance cards are digital
Karla SellersUnassigned
set1:00 PM
Sales — 30 min — 1:00 PM
Bobson DugnuttUnassigned
confirmed2:00 PM
Sales — 30 min — 2:00 PM
Dana ColeJake Martin
8/27Thu1
cancelled10:00 AM
Service — 30 min — 10:00 AM
Confirmed by phone for Wednesday at 8:30 AM. Customer reports a broken front...
Renee ParkUnassigned
8/28Fri1
confirmed11:15 AM
Delivery — 30 min — 11:15 AM
Evan RossSonya West
8/29Sat1
confirmed9:00 AM
Sales — 30 min — 9:00 AM
Todd BonzalezUnassigned
8/30Sun0
Nothing scheduled
8/31Mon1
confirmed3:30 PM
Sales — 30 min — 3:30 PM
Lena OrtizJake Martin
9/1Tue0
Nothing scheduled
Three zones, one board. Needs action is a pinned ~240px first column holding unresolved past visits from a trailing 14-day window, oldest first — a calm surface, not a queue: orange lives only on the status chip and the thin left edge (the calendar's unresolved-edge convention), never as a banner or a fill. Each lane card carries a neutral age badge, the original date + time, customer, owner, and one next action; the lane scrolls internally and its 12 older footer chip opens the pre-filtered List. Today keeps the grid's ring convention on its date numeral; day headers carry at most two badges — orange unresolved count, neutral-outline unassigned count (a gap is not an alarm). Future days run on minmax(180px,1fr) tracks with horizontal overflow, sticky headers, a soft right-edge fade, and the last column peeking. Past days inside the week compress to day receipts — tappable scheduled / shown / no-show / unresolved counts, each opening the List filtered to that day + status; resolved visits never render as full cards anywhere on the Board. At minimum column width the time leaves row 1 and joins the type row; the assignee truncates before the customer name, full values in the tooltip. Status chips: outcome unknown (blue-01 fill, white text) · set (neutral outline — unconfirmed) · confirmed (blue outline) · cancelled (gray) · completed (green-02/green-01). A DAISI-booked card keeps the small gold origin mark.
1b · Needs action — all caught up
Needs action0
All caught up — no visits need action
The lane at zero is quiet green-01 text and nothing else — no decoration, no celebration graphic. The lane never hides; its presence is the promise that unresolved work always surfaces here first.
2 · Resolve from the chip
outcome unknown8:30 AM
Sales — 30 min
Karla SellersUnassigned
Doesn't resolve — schedules outreach
Marked shown
Resolution lives on the status chip everywhere it appears — clicking outcome unknown opens this popover directly, no navigation. Show and No-show resolve; DAISI follow up sits below the divider as a secondary action because it does not resolve — it schedules outreach. The full Resolve Visit dialog (comp-visits-resolution.html) opens only when a note is wanted. Every quick resolve fires the snackbar with a ~5-second Undo; the resolver is stamped on the visit either way.
3 · Loading