Recurring classes: schedule once, not forty times
Why a timetable should be one object with exceptions, not forty independent bookings.
If your Tuesday 6pm class is forty calendar entries, then moving it is forty edits and cancelling a week is forty deletions. Model it as a series with exceptions and both become a single action — and the waitlist, attendance and revenue reports finally have something coherent to attach to.