Recently, I've been working with the fine folks at Transform Studios, helping them build Statamic and Laravel sites.
They have a very diverse set of clients, but they've noticed that many of them had calendars and/or lists of events. In the past they’d use an Events collection and their clients would create entries for every event, and while it was a bit clunky with all that repetition, it worked fairly well.
They got asked if there was an easier way to deal with both repeating events and holidays; they didn’t like entering in the same event all the time. Sometimes folks would forget about a recurring event or make a mistake on a multi-day events.
After discussion, I realized that this couldn't easily be built with native Statamic templating and we'd need an addon to provide the best customer experience.
On the surface this seems "easy", but there are actually quite a few different "types" of events:
- Single day events with start/end times
- Single day, all day events, like a holiday
- Multi-day events, each day with start/end times, like a conference
- Multi-day, all-day eventts, like Spring Break, vacations, etc
- Recurring, single day events (weekly/bi-weekly, monthly meetings, etc), some with end dates and some without
Phew. Now imagine you'd like something easy to use (template) that let you create a monthly calendar of all your events (a mix of all of the above!).
It took quite a bit of wrangling to create something that generated all the right events, in order, on the fly, giving you all entry information plus the event information (next one, previous one, pagination, etc).