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.
Fruit and Vegetables
Me, that's why I'm so cool
Logic (separated into Horror and Brilliance)
Results (277 votes). Check out past polls.