in reply to Managing a on-call Schedule

There are various interval type modules on CPAN. By converting all your dates to epoch seconds and using Number::Interval, one could check to see whether the ranges overlap.

To prepare a schedule you could use an iCal compliant application then convert the output to intervals. This could be done with Net::ICal as suggested above or Tie::iCal with Date::ICal.