Schedule operations

Staff timetable

Create recurring classes, publish sessions, and inspect live rosters.

{{ notice }}
{{ error }}

{{ selectedId ? 'Edit template' : 'New class template' }}

Trainer availability

No weekly availability saved yet.

Recurring templates

No templates yet.

{{ template.name }}

{{ recurrence(template).weekdays.join(', ') }} at {{ recurrence(template).start_time }} · {{ template.default_capacity }} spots

Published sessions

Personal-training calendar

One-to-one appointments share trainer and room conflict checks with group classes.

{{ visibleAppointments.length }} appointments

No PT appointments in this range.

{{ appointment.member_name || 'Member' }} with {{ appointment.trainer_name || 'Trainer' }}

{{ appointment.appointment_date }} · {{ prettyTime(appointment.start_time) }}–{{ prettyTime(appointment.end_time) }}

{{ appointment.status }}

{{ rosterSession.name }} roster

{{ rosterSession.session_date }} at {{ rosterSession.start_time }}

No bookings yet.

{{ booking.name }} {{ booking.email }} {{ booking.status }}