Sueetie Calendars have always supported multi-day and weekly recurring events. They now support the automated reoccurrence of annual events like birthdays and anniversaries. The keyword here is "automated," where no additional human administration is required other than to enter the event once. We’ll refer to those events as "Annualized Calendar Events."
For simplification purposes in both management and architecture Sueetie supports an "IsAnnual" property with each Calendar. This eliminates a needless layer of logic wrapped around each event item. Here is what the Calendar IsAnnual setting looks like in Sueetie AddonPack Administration.
By enabling the "Events are Annual" checkbox, that calendar is considered to consist of events that annually occur on the same date.
How Dates Re-occur
Let’s start by looking at a sample Calendar of recurring events: a birthday, a wedding anniversary and a work anniversary. Notice too how you can create a separate Event Type for each so they will display by a unique style by type.
The events in the sample calendar are entered for November 2011. These event will be duplicated by a process running in the background at which point they will appear on the November 2012 calendar with the current style properties. They are annualized for the next year only, giving the administrator ample time to review the November 2012 to make any corrections or additions.
Fail-Safe Copy Forward Logic
We took into consideration real working environments where dates may be mis-entered or updated over time to prevent erroneous events from being copied forward a year. For that reason events are not annualized immediately upon entry. Instead we employed a Fail-Safe mechanism of a 30-day delay in processing events to be annualized for the following year. Thirty days must have elapsed from the event date before the event is annualized, giving plenty of time to correct or remove a bad birthday or anniversary.
The annualization is performed by a background task. A manual "copy forward" button was considered, but we know from experience that these are often neglected and result in incomplete calendar data. The background task completely automates the process. When events are copied forward the background task logs a message in the Sueetie Eventlog.