Handling Repeating Events in RSVP System
When building event calendars, one of the first design questions is how to handle repeating events. In Drupal, there are two main approaches:
Option 1: Single Event + Repeat Rule (RRULE)
This approach stores one master event with a recurrence rule (like “every Tuesday until December”). The system calculates the dates dynamically.
✅ Efficient and simple
❌ Harder to manage exceptions, RSVPs, or per-event customizations
Option 2: Materialized Occurrences
This method creates individual event entities for each instance in a recurring series. Each occurrence can have its own RSVP list, host, capacity, and survey results.
✅ Great for managing sign-ups, cancellations, attendance, and analytics
✅ Easier to handle schedule changes or exceptions
⚙️ Slightly more complex to generate and maintain
Our Direction
For the RSVP System, we’re adopting the Materialized Occurrence model. This gives us the flexibility to build advanced features like:
Individual RSVP signups per date
Host and participant surveys after each event
Precise capacity tracking and reporting
Custom notifications for each occurrence
This design lays the foundation for a professional-grade reservation and feedback system—built entirely on open Drupal tools like ECA, Smart Date, and Views.
Stay tuned as we roll out a demonstration of recurring event generation and per-instance RSVPs in our upcoming demo site.
https://www.drupal.org/project/date_augmenter
https://www.mandclu.com/modules/date-content-augmenter
Option 2 Materialize Occurrence