Jesse Vincent and David Glasser recently released v0.02 of Data::ICal which included my patches to allow it to parse .ics files. This allowed me to whip up Data::ICal::DateTime which makes it easy (well, easier at least) to deal with iCalendars and DateTime.
The long and short of it is that that can do my $cal = Data::ICal->new('foo.ics'); my $span = DateTime::Span->from_datetimes(start=>$d1, end =>$d2); # return all events, including instances of recurring events my @events = $cal->events($span); # return all events, split multi-day events up my @events = $cal->events($span, 'day'); Obviously, $span can also be a Set or SpanSet. Which is all lovely and groovy but, since releasing, I've had the feeling that my TimeZone support is bogus - not least because if I do $span->set_time_zone('Europe/London'); then I can wildly different results even though all the events in the calendar have that TZID I'm pretty much an idiot when it comes to these things - this module was cobbled together using the finest cargo cult and suck-it-and-see technology so I'd appreciate some feed back and pointers on where I might be going wrong. Thanks, Simon -- rorshach and prozac and everything's groovy