Recurring Signups and Series Enrollment
When a volunteer signs up for a shift that's part of a recurring series (e.g., every Tuesday for the next two months), series enrollment lets them register for all the remaining occurrences at once instead of signing up one shift at a time.
The volunteer experience
After a volunteer signs up for a single occurrence of a recurring shift, the confirmation page asks:
"This is a recurring shift. Want to volunteer for all N upcoming occurrences too?"
If they click to enroll, they're registered for every remaining occurrence in that series in one step — they don't need to revisit the signup page for each future date.
What happens behind the scenes
Clicking enroll creates (or updates) a series enrollment record tying that volunteer to the recurring shift, and then expands it into individual registrations:
- The system looks at every upcoming, active occurrence that shares the same recurrence.
- For each one, it checks whether the volunteer is already registered or the shift is full.
- For every remaining eligible occurrence, it creates the registration and participant record, just as if the volunteer had signed up for that date individually.
The result is a summary of how many occurrences were enrolled, how many were skipped because the volunteer was already registered, and how many were skipped because they were full. Capacity limits on each individual shift are always respected — series enrollment never overbooks a shift to accommodate an enrolling volunteer.
Walk-in enrollment
The walk-in quick-add tool (used by admins to register a volunteer on the spot) also supports enrolling that volunteer into the full series with a single flag, rather than only registering them for the one shift being added.
Keeping enrollments current: the rolling horizon job
Recurring series are often extended over time — for example, a weekly shift that only has occurrences scheduled a month out gets new dates added later. A nightly job (running at 6 AM UTC) re-expands every active series enrollment against any newly created occurrences, so volunteers who enrolled in a series stay registered as the series grows, without needing to re-enroll manually.
Cancellation
Canceling an individual shift for a volunteer works the same way as any normal shift cancellation — it doesn't affect the rest of their series enrollment.
Canceling the entire series for a volunteer does two things:
- Marks the series enrollment as ended, so future occurrences are no longer auto-expanded for that volunteer.
- Cancels all of that volunteer's upcoming, not-yet-attended registrations in the series (statuses like Registered, RSVPed, or Invited move to Not Attending).
Past shifts the volunteer already attended are left untouched, preserving their attendance history.
Note: whole-series cancellation is available in the system but is not currently exposed as a button in the admin UI — cancelling a volunteer out of a whole series today requires going through support or a future UI update.