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);