A good place to start.
A broad overview of the whole system
Here's a piece of Date::ICal's SYNOPSIS.
$ical = Date::ICal->new( year => 1964, month => 10, day => 16,
hour => 16, min => 12, sec => 47, tz => '0530' );
$hour = $ical->hour;
$year = $ical->year;
Oddly enough, there is a bug in this.