iCal:: Parser is a Perl module to parse iCalendar files into a data structure. iCal:: Parser is a Perl module to parse iCalendar files in your data structure.SYNOPSIS use iCal:: Parser my $ parser = iCal:: Parser-> new (); my analysis: $ hash = $ -> parse ($ file); $ parser-> parse ($ another_file), my $ combined = $ parser-> calendar; my $ combined = iCal:: Parser-> new-> parse (@ files); my $ combined = iCal: : Parser-> new-> parse_file (@ files); combined my $ parser = iCal:: -> new-> parse_strings (@ strings); This module processes iCalendar (vCalendar 2.0) files as specified in RFC 2445 in a data structure. It handles recurrences (RRULE), exclusions (EXDATEs), updates of the event (events with a recurrence-ID), and nested data structures (and participants VAlarm). It currently ignores VTIMEZONE, VJOURNAL VFREEBUSY and data entry types.The structure returned is a hash as follows: (calendars => [l, ...], events => (yyyy => (mm => ( ) dd => (uid => event%)) todos => [% todo, ...]) is, it contains an array of hashes calendar, a hash of key events per year => month => day => eventUID, and an array of todos.Calendars, events and tasks to be "rolled up" version of the OS hashes return Text:: vfile: asData, with dates replaced by DateTime objects.During analysis The events in the calendar entry are expanded out into multiple events, one per day covered by the event, as follows: If the event is one day "all day" event (in iCal, the event is 24hrs long, starts at midnight on the day and ends at midnight the next day) he does not land an hour and the field is defined AllDay 1.Si the case is a recurrence (RRULE), a day event is created by specification.If RRULE event lasts several more a day (the start and end dates are different dates, but does not contain a RRULE), is developed in several events, first time event is scheduled to end at midnight, subsequent events are set to start at midnight and ending at midnight the following day (the same as an "allday event, but the field is not set allday) and days of events is set to run from midnight until the end time of the original multi-event. day of the event is an update (it contains a RECURRENCE-ID), the occurrence of origin is maintained. If the event is not referenced (for example, it was deleted after the update), the event is added as an example again event.An each hash is below.