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.
Once (shame on you!)
Twice (shame on me!)
More often than I'd like to be
All the time
Just when answering stupid polls
Who you callin' a fool?
I refuse to vote in this ridiculous poll
Results (514 votes). Check out past polls.