Subject: | DateTime::Format::ICal->format_datetime() is incompatible with Data::IICal |
The method start() is using DateTime::Format::ICal->format_datetime()
That format_datetime() method, in version 0.09, returns the TZID
parameter as part of the property value. For example like this:
TZID=US-Eastern:19970902T090000
But the Data::ICal method add_property() is expecting to get property
parameters in a special hashref, like this:
$self->add_property(
'dtstart' =>
[
$new->datetime,
{
TZID => $new->time_zone_long_name,
},
],
);
A correctly formatted dtstart row with a TZID looks like this:
DTSTART;TZID=US-Eastern:19970902T090000
But the result of using your start() method is the faulty line:
DTSTART:TZID=US-Eastern:19970902T090000
Notice the ':' rather than the ';' in the line.
I have created a ticket about this for DateTime-Format-ICal here:
https://rt.cpan.org/Ticket/Display.html?id=43610
You could either make your own version of format_datetime() that returns
property parameters in a separate hashref, or you would have to parse
the value returned by DateTime::Format::ICal->format_datetime() and give
the right params to Data::ICal.
It's not a big function, so it would not be hard to make your own version.