Materialize Recurring Meetings
What It Does
Staff create, update or explicitly materialize a series, or the daily job processes it. The implementation calls every new occurrence immediately. Product has instead chosen drafts followed by a call near the meeting date. Pausing cancels future editable occurrences, and resuming does not restore those cancelled records; hand-moved dates are also rewritten today.
The Flow
Validate recurrence and zone, then save the series; creation checks that the committee is not dissolved. Lock the saved series and expand its active dates through the rolling eighteen-month window. During an edit, update future draft or scheduled occurrences still wanted and cancel dates removed from the rule. Insert missing dates as scheduled meetings, copying defaults and the roster and preparing notices. Process active series for each active workspace in the daily pass at 06:41 UTC.
When Something Fails
Reject invalid input. No new series on a failed save. Roll back materialization. The series edit remains committed without its occurrence changes. Roll back the occurrence transaction. The saved rule can disagree with existing meetings until recovery. Roll back the run; daily processing records the failed series and continues. Missing dates await another materialization. Record workspace or series failures and continue where the job catches them. Failed work waits for another pass.
Open Design Questions
The implementation calls every new occurrence immediately. Product has instead chosen drafts followed by a call near the meeting date. Pausing cancels future editable occurrences, and resuming does not restore those cancelled records; hand-moved dates are also rewritten today.