Pick the approaches to move forward with.
Each option below is a live demo of one scheduler variant. They're embeddable widgets — in production they pop up from the screens where scheduling happens (client dashboard, webinar page, a staff member's view of a client). Open each to compare.
✓ Decided So far the only decided approach is the compact (status) client scheduler — that's how clients schedule into classes. Every other variant below (seat-selection grid, 1:1 / intake booker, embedded preview, admin capacity scheduler) is still under review and not yet decided.
Class · Seat Selection
ClientAirline-seat grid — clients pick a specific open seat in an eligible class. Premium/preferred seats carry a small fee; full classes are grayed.
- Most expressive — clients choose exactly where they land
- Shows seats directly, so a count labels what they see
- Heavier; best as a full surface, not a tight host card
Class · Compact (Status)
ClientNo individual seats — each eligible class shows only its status: Open or Premium only. Full classes are hidden entirely.
- Lean — fits tight host screens (dashboard cards)
- No raw seat counts (those are an admin signal)
- Fastest path for a quick reschedule
1:1 / Intake (VIM)
ClientLighter, separate system for short 1:1s — video intake, exit interviews, tech help, reading help. "Pick a time this week." Slots are tied to a meeting room, not a named staff member.
- Distinct from class scheduling by design (6/1)
- Room-based availability fixes the old "named person" ambiguity
Embedded in host screens
ClientHow the widgets above actually appear in production — launched as popups from example host cards on the client dashboard, the webinar page, and a staff member's view of a client record.
- Shows the trigger-in-context, not just the popup
- Same widgets, reused across portals
Capacity Scheduler
Admin / CoordinatorThe count- and filter-rich counterpart to the client views. Coordinators see all classes (including full ones), exact capacity (filled / open / premium / reschedule headroom), and the full filter bank (course, language, gender, population, lane, facilitator) for balancing load across the catalog.
- This is where seat counts belong — load balancing, not client choice
- Open placement question: fold into
staff/webinars.html(capacity) vs a dedicated admin scheduler page