Volunteers & Program Series
The Volunteers module lets you define recurring programs, staff them with volunteer roles, track who is serving, and manage schedules. Program Series are the core building block: they describe a repeating program in full — its events, volunteer needs, and attendance tracking — so each occurrence can be generated automatically.
Set these up before creating a Program Series:
- Groups — Each event inside a series can be linked to a Group, which provides its attendance roster. Create your ministry groups first under Groups. See Groups Help for details.
- Ministry Areas — If you want to associate the series with a ministry area (e.g., Children's Ministry), create those under Volunteers → Teams first.
- Volunteer Teams — Volunteer blocks inside a series assign slots to roles. If you use named teams, configure them under Volunteers → Teams first so volunteers can be scheduled against them.
- Event Tags — Tags classify events for reporting (e.g., Children, Worship, Discipleship). Any custom tags you need should exist before creating the series. System tags are always available.
A Program Series is a reusable template that describes everything that happens during one instance of a recurring program — who attends, who volunteers, and when it all happens. Think of it as a blueprint that gets stamped onto each date on the calendar.
A series is made up of three layers:
- The Series itself — Holds the name, recurrence schedule (e.g., every Sunday), the anchor time (the earliest anything starts), and how far ahead to generate occurrences.
- Events — Each occurrence has one or more Events — distinct gatherings within the same program. For example, a Sunday morning program might have "Children's Church" and "Adult Worship" as separate events, each linked to different groups and tracked separately.
- Volunteer Blocks — Each Event can have Volunteer Blocks — specific staffing needs (e.g., two Greeters, one Sound Tech). Each block gets the required number of open slots that can be assigned to volunteers.
When the system generates an occurrence for a given date, it creates:
- An Event Group (a container for all events on that date)
- One real Event record for each event template
- One Service Block for each volunteer block template, with the correct number of open assignment slots
- A Check-In Session for any event with Kiosk Check-in enabled (inactive until the occurrence is published)
Occurrences start in Pending status. A coordinator reviews them and clicks Publish when everything is ready, which activates check-in sessions and makes the events visible for attendance tracking.
Every series has an Anchor Time — the earliest moment that anything in the program begins. All event start times and volunteer block start times are stored internally as offsets (in minutes) from this anchor.
When you create or edit a series, you enter actual clock times (e.g., 8:45 AM for the anchor, 9:00 AM for an event). The system computes the offset automatically. This means that if you later change the anchor time, all events and blocks shift proportionally.
Example: Anchor is 8:45 AM. Children's Church starts at 9:00 AM (15-minute offset). Greeter block starts at 8:30 AM — since this is before the anchor, the offset is clamped to 0 (same as the anchor). To have a block that starts before the anchor, set the anchor to the earliest possible start time.
Go to Volunteers and open Program Series, then click New Series.
- Name — Required. Use a descriptive name such as "Sunday Morning Children's Ministry" or "Wednesday Night Youth". This name appears on every generated occurrence.
- Description — Optional. Appears on generated events.
- Repeats — Choose a schedule from the dropdown: weekly on a specific day, every other week, daily, monthly, or a custom RRULE string for anything more complex. For most church programs, one of the weekly or biweekly options is all you need.
- Custom RRULE — If you choose Custom, enter an iCalendar RRULE string directly (e.g., FREQ=WEEKLY;BYDAY=SU,WE for both Sunday and Wednesday). This is for advanced use cases.
- Program starts at (Anchor Time) — Set this to the earliest time anything in your program begins — including volunteer setup shifts that happen before the main service. Events and blocks that start later than this will be offset from this time.
- Generate ahead (weeks) — How many weeks of upcoming occurrences to keep generated at any time. The default is 5 weeks. Increasing this means more occurrences are pre-generated, which is useful if you assign volunteers weeks in advance. The system automatically fills in missing occurrences whenever you view the series.
Each Event represents one distinct gathering that happens every occurrence. For a simple program with one service, you may only need one event. For complex programs (e.g., children's classes that meet at the same time as adult worship), add one event per gathering.
Click + Add Event to add additional events. For each event:
- Event Name — Required. E.g., "Children's Church", "Adult Worship", "Nursery".
- Start Time — The actual clock time this event begins. Leave blank to start at the program's anchor time. The system computes the offset from the anchor automatically.
- Duration — How long the event runs, in minutes. Defaults to 60.
- Linked Group — Optional but recommended. Linking a group means the event's attendance page will show that group's members by default. Create your groups first if they don't exist yet — see Groups Help.
- Location — Optional.
-
Attendance Tracking — Choose which tracking modes apply:
- Headcount — Record a total number of people present.
- Roster — Track named attendance by group member. Requires a linked group.
- Kiosk Check-in — Enable a self-serve check-in station. This creates a Check-In Session for each occurrence (activated when the occurrence is published).
- Tags — Optional. Tags are applied to every generated event, which affects reporting and filtering. System tags (Worship, Discipleship, etc.) are always available; custom tags appear if your church has created them.
Volunteer Blocks define the staffing slots for each event. Each block creates a set of open assignment slots that coordinators fill each occurrence. You can skip this step and add blocks later by editing the series.
Inside each Event card, click + Add Block. For each block:
- Block Name — Required. E.g., "Greeter", "Sound Tech", "Children's Teacher".
- Start Time — When this volunteer role begins. Can be before the event start time (e.g., a greeter who arrives early for setup). Leave blank to use the anchor time.
- Duration — How long this role runs, in minutes. Can span before and after the event.
- Role Label — Optional. A freeform label for the role (e.g., "Lead", "Assistant"). Purely informational.
- # Needed — How many people are needed in this role each occurrence. Each occurrence gets this many open assignment slots.
Note: Block start times are offsets from the series anchor time, not from the event start time. This allows a greeter block to begin before the event it is associated with.
Click Create Series. You are taken directly to the occurrences page for the new series, which immediately generates upcoming occurrences within the generate-ahead window (default: 5 weeks from today).
Each occurrence appears as a row showing the date, status (Pending), and the number of open volunteer slots. From here you can publish individual occurrences when they are ready.
- Pending — The occurrence has been generated but is not yet active. Volunteer coordinators can assign volunteers. Check-in sessions exist but are inactive. Attendance cannot be taken yet.
- Published — The occurrence is live. Check-in sessions are activated and events appear for attendance tracking. Once published, an occurrence cannot be reverted to Pending.
- Cancelled — The occurrence is cancelled. Open volunteer slots are removed. Events are marked cancelled. You can optionally record a reason for the cancellation.
From the occurrences list, click Publish next to a pending occurrence. The system:
- Marks the occurrence as Published
- Records the publish timestamp
- Activates all Check-In Sessions linked to events in this occurrence
Once published, an occurrence stays published. If the program is cancelled, use the Cancel action instead.
Click Cancel next to any occurrence (pending or published). You can enter an optional cancellation reason. The system marks the occurrence cancelled, marks all linked events as cancelled, and removes any open (unfilled) volunteer slots.
Cancelling an occurrence does not delete attendance data already recorded. Filled volunteer assignments are preserved but the open slots are removed.
The system automatically generates occurrences up to the series' generate-ahead window whenever you view the occurrences page. Clicking Generate Window forces an immediate refresh and fills any gaps.
If you need a longer horizon (e.g., planning volunteer assignments 3 months out), edit the series and increase the Generate Ahead weeks setting. The next time you visit the occurrences page, the system will create the additional dates.
From the occurrences page, click Edit Series. The edit form is pre-populated with all current series details, events, and blocks. Make your changes and then choose how to apply them:
- Template only — Saves the updated template. Already-generated occurrences are not changed. Future occurrences generated after this save will use the new template.
- Template and pending occurrences — Saves the updated template and rebuilds all pending (not yet published) occurrences from scratch. The old pending events, volunteer blocks, and check-in sessions for those dates are deleted and regenerated using the new template. Published occurrences are never touched.
Caution: Choosing "Template and pending occurrences" will delete any volunteer assignments already made for pending occurrences. If you have already filled volunteer slots for upcoming dates, use "Template only" and update those occurrences manually.
- Published occurrences are never rebuilt. When you save edits with "Template and pending occurrences", only pending (unconfirmed) occurrences are rebuilt. Any occurrence you have already published will not be changed. This is intentional — published occurrences may already have attendance, volunteers, and check-in sessions tied to them.
- Editing pending occurrences deletes existing volunteer assignments for those dates. If a volunteer has already been assigned to a pending occurrence, rebuilding that occurrence removes the assignment. Inform your volunteers before using "Template and pending occurrences" if assignments are already in place.
- Events are not individually editable from the series view. Once generated, each occurrence's events exist as real event records. You can edit them directly through the Events module if you need to change a specific date. Changes to an individual event do not affect the series template or other occurrences.
- Block start times cannot be before the anchor time. If a volunteer block needs to start before the main program (e.g., an 8:00 AM parking team for a 9:00 AM service), set the series anchor time to 8:00 AM, not 9:00 AM. The anchor must be the earliest anything in the program starts.
- Occurrences are generated from today forward. The system only generates occurrences from today's date through the generate-ahead window. Historical dates that fell before you created the series will not be generated automatically. If you need past occurrences, you can create individual events manually.
- Cancelling an occurrence is not the same as deleting it. There is no delete action for an occurrence — you can cancel it and optionally enter a reason. The occurrence record and its events remain in the system but are marked cancelled.
- One recurrence pattern per series. A series follows one schedule (e.g., every Sunday). If your program runs on different days in different seasons, you will need separate series for each schedule and can deactivate the ones not currently in use.
Volunteer Teams let you group people into named teams (e.g., Team A, Hospitality Team) and manage them collectively. Teams can be assigned to service blocks so coordinators can schedule a team rather than individual people.
Go to Volunteers → Teams to create and manage teams. Add members to each team from the team detail page.
Once occurrences are generated, the weekly workflow for a volunteer coordinator is:
- Go to Volunteers → Schedule to see the full view of open and filled volunteer slots across upcoming dates.
- Fill open slots by assigning volunteers to service blocks. Volunteers receive notifications of their assignments.
- Publish the occurrence when assignments are complete and the occurrence is confirmed.
- On the day of the program, use check-in (if enabled) to track attendance.
- After the program, record headcount or roster attendance on each event.
Each volunteer can view their upcoming assignments under Volunteers → My Schedule. From there they can confirm or decline assignments. Coordinators can see participation across all volunteers to identify who is serving regularly, who may have the spiritual gift of service, and who may be at risk of burnout from over-commitment.
Volunteers can also set their availability under Volunteers → My Availability to indicate dates they cannot serve, which helps coordinators fill slots appropriately.