Skip to content

Live Sessions

The Live Sessions app combines live class hosting with one-on-one meeting scheduling. Hosts can create sessions (live classes, webinars, workshops, office hours), set up recurring availability slots for bookable meetings, and track attendance across all session types.

  • Session types — live class, webinar, workshop, office hours
  • Session lifecycle — scheduled, live, ended, cancelled with participant counting
  • Recurring sessions with configurable rules (daily, weekly, biweekly, monthly)
  • Availability management — define bookable time slots by day of week with pricing
  • Meeting bookings — guests book available slots; bookings track status (confirmed, cancelled, completed, no show)
  • Attendance tracking with per-participant join/leave times and duration
  • Pricing support — sessions and meeting slots can be free or paid
  • Meeting provider integration via meeting_url and meeting_provider fields
RoutePurpose
/business/apps/live-sessionsDashboard with quick nav, upcoming sessions, and recent meetings
/business/apps/live-sessions/sessionsFull session listing
/business/apps/live-sessions/sessions/newCreate a new session
/business/apps/live-sessions/sessions/[id]Session detail and management
/business/apps/live-sessions/availabilityManage availability time slots
/business/apps/live-sessions/meetingsMeeting bookings listing

Core entity with host_id, title, type (live_class, webinar, workshop, office_hours), status (scheduled, live, ended, cancelled), scheduled_at, duration_minutes, timezone, optional meeting_url/meeting_provider, max_participants, participant_count, recurrence rule, and pricing (is_free, price).

Availability definition: day_of_week (0-6), start_time/end_time, duration_minutes, is_active toggle, price, and timezone.

A booked meeting linking slot_id, host_id, and guest_id. Tracks scheduled_date, start_time/end_time, meeting_url, notes, status (confirmed, cancelled, completed, no_show), and cancellation details.

Per-participant attendance records for sessions: status (present, absent, late, excused), joined_at/left_at, and duration_seconds.

Aggregate type with total_expected, total_present, total_absent, total_late, and the full records array.

Dashboard metrics: total_sessions, live_sessions, total_participants, total_meetings, total_revenue.

  • Quick nav grid — four cards: Sessions, New Session, Availability, Meetings
  • Upcoming sessions list — card rows with video icon, session title, formatted date/time, duration, participant count, and status badge (scheduled=secondary, live=default, ended=outline, cancelled=destructive)
  • Recent meetings list — card rows showing scheduled date, time range, notes, and status badge (confirmed=default, cancelled=destructive, other=secondary)
  • Date/time formatting — separate fmtDate and fmtTime helpers for human-readable scheduling info
  • Services: listUpcoming and listMeetings from $lib/apps/live-sessions/services
  • Types: Session and MeetingBooking from $lib/apps/live-sessions/types
  • Composite types: SessionWithHost, SessionWithAttendance, MeetingBookingWithSlot, MeetingBookingWithGuest for detail views
  • Database: Stored in a separate ext_live_sessions schema