in reply to Managing a on-call Schedule

Sorry, I can't recommend a specific module (at least not from the top of my head... and I'm sure you browse CPAN just as well as I can :)

Anyway, before diving into implemention, it would probably help to define the task as clearly as possible: In case of a bad schedule, do you just want to warn, or somehow fix things automatically, or present a GUI that allows a user to shift slots around...? If automatic, how shall overlapping slots be dealt with? (e.g. should 00-06|05-12 become 00-05|05-12 or 00-06|06-12, etc.)   What to do in case of multiple overlaps? ... Generally, for data/time comparisons and conversions, there are quite a few modules on CPAN, like Date::Calc, Date::Manip, and friends.