Event Scheduling & Calendars
The Events module facilitates scheduling, registration, and attendance tracking for all church gatherings.
1. Event Parameters
Every scheduled event holds specific structural properties:
name(text): The title of the event (required).start_date/end_date(timestamptz): Stored in UTC. The user interface translates these values to the organization’s local timezone.all_day(boolean): Flag indicating whether the event spans the entire day, ignoring specific hours.location(text): Detailed meeting address or classroom room number.campus(text): Links the event to a physical church campus.
2. Recurrence Patterns (recurrence)
Gatherings can repeat on a defined schedule using the recurrence enum:
'none': One-off events (e.g., special parish seminars).'daily': Occurs every day.'weekly': Repeats every week (e.g., Sunday Liturgy).'biweekly': Repeats every two weeks.'monthly': Repeats on the same day monthly.'yearly': Annual repetitions (e.g., Feast celebrations).
3. Status Lifecycle (status)
Events transition through distinct states:
draft: The event is visible only to leaders and planners. It is hidden from public calendars and registration widgets.published: Active event. Displays on standard calendars and opens registration lines.cancelled: Suspended event. Retained in the database for tracking, but marked cancelled in calendar views.completed: Past event. Automatically set when the end date passes and attendance records are closed.
4. Ministry & Group Linking
Events can be associated with organizational sub-units to delegate responsibility:
ministry_id(uuid): Links the event to a church department (e.g., associating a service with the “Worship” ministry).group_id(uuid): Scopes the event to a specific social circle (e.g., a meeting for the “Youth Fellowship” small group).