diff --git a/src/Feeds/Parser/IcalParser.php b/src/Feeds/Parser/IcalParser.php index be17d6a9b5618157aa110ca7b6fea8bfd9ae9fbe..e171fbf70f6437467f7cfdaf7e7eb78371f7258d 100644 --- a/src/Feeds/Parser/IcalParser.php +++ b/src/Feeds/Parser/IcalParser.php @@ -86,7 +86,15 @@ class IcalParser extends PluginBase implements ParserInterface { switch ($eventProperty) { case 'dtstart': - $itemObject->set($eventProperty, $event->dtstart_array[2]); + // Check to see if we have a timezone. + if (!empty($event->dtstart_array[0]) && !empty($event->dtstart_array[0]['TZID'])) { + // Use format: 2019-07-29T06:50:00Europe/Amsterdam + $itemObject->set($eventProperty, $event->dtstart_array[1].$event->dtstart_array[0]['TZID']); + } + else { + // Just use the unix_timestamp. + $itemObject->set($eventProperty, $event->dtstart_array[2]); + } // Save the original value in the raw source field. $itemObject->set('dtstart_raw', $eventPropertyValue); @@ -94,7 +102,15 @@ class IcalParser extends PluginBase implements ParserInterface { case 'dtend': if (!empty($event->dtend_array[2])) { - $itemObject->set($eventProperty, $event->dtend_array[2]); + // Check to see if we have a timezone. + if (!empty($event->dtend_array[0]) && !empty($event->dtend_array[0]['TZID'])) { + // Use format: 2019-07-29T06:50:00Europe/Amsterdam + $itemObject->set($eventProperty, $event->dtend_array[1].$event->dtend_array[0]['TZID']); + } + else { + // Just use the unix_timestamp. + $itemObject->set($eventProperty, $event->dtend_array[2]); + } // Save the original value in the raw source field. $itemObject->set('dtend_raw', $eventPropertyValue);