in reply to storing and 'understanding' complex calendar events (including recurring events)
You might consider something like Data::ICal or Data::ICal::DateTime These have the side benefit that the files can be read by other programs such as calendar programs and so forth.
UPdate: Just to make it clear the iCalendar specification already allows for recurrences and the other common things you might want from a calendar and these modules (and others) provide an interface to those files.
/J\
|
|---|