A good place to start.
Here's a piece of Date::ICal's SYNOPSIS.
SYNOPSIS
use Date::ICal;
$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 code.