
###
ICS
###


****
NAME
****


Kernel::System::CalendarEvents::ICS - to manage calendar ICS events


***********
DESCRIPTION
***********


Global module for operations on calendar events with ICS extension


****************
PUBLIC INTERFACE
****************


new()
=====


Don't use the constructor directly, use the ObjectManager instead:


.. code-block:: perl

     my $CalendarEventsICSObject = $Kernel::OM->Get('Kernel::System::CalendarEvents::ICS');



Parse()
=======


Parses ICS string.


.. code-block:: perl

     my $Result = $CalendarEventsICSObject->Parse(
         String =>
             "BEGIN:VCALENDAR
             ..
             END:VCALENDAR",
         ToTimeZone => 'Europe/Berlin', # optional
     );



_PrepareData()
==============


Standardizes/post-processes data hash from parsed data.


.. code-block:: perl

     my $Result = $CalendarEventsICSObject->_PrepareData(
         Data => {
           'todos' => [
                       ..
                      ],
           'events' => {
                         '2022' => {
                                     '3' => {
                                              '7' => {
                                                      ..
                                                     }
                                            }
                                   }
                       }
 
         }, 'cals' => [
                        {
                         'X-WR-CALNAME' => 'Calendar 1',
                         'X-WR-RELCALID' => 1,
                         ..
                        }
                      ]
         }



_PreProcess()
=============


Pre-processes calendar data.


.. code-block:: perl

     my $Result = $CalendarEventsICSObject->$CalendarEventsICSObject(
         String =>
             "BEGIN:VCALENDAR
             PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN
             VERSION:2.0
             METHOD:REQUEST
             .."
     );




