in reply to Schedule Optimization
DateTime::SpanSet may help you write the time functions, together with DateTime::Event::Recurrence. Although these modules don't provide all the logic you need, they do provide the basic operations.
An organised event
A traditional gathering
With family and friends
I don't celebrate the New Year
Adjusting my clocks for the Leap Second
I can't remember
Results (200 votes). Check out past polls.