diff --git a/src/Plugin/views/style/FullCalendar.php b/src/Plugin/views/style/FullCalendar.php
index 05980f8..d601776 100644
--- a/src/Plugin/views/style/FullCalendar.php
+++ b/src/Plugin/views/style/FullCalendar.php
@@ -408,12 +408,14 @@ class FullCalendar extends StylePluginBase {
           $field_storage_definitions = $this->fieldManager->getFieldStorageDefinitions($field->definition['entity_type']);
           $field_definition = $field_storage_definitions[$field->definition['field_name']];
 
+          $field_option_settings = $field->options['settings'];
+          $timezone_override = array_key_exists('timezone_override', $field_option_settings) ? $field_option_settings['timezone_override'] : '';
           $date_fields[$field_name] = [
             'value'       => $field->getItems($row),
             'field_alias' => $field->field_alias,
             'field_name'  => $field_definition->getName(),
             'field_info'  => $field_definition,
-            'timezone_override'  => $field->options['settings']['timezone_override'],
+            'timezone_override'  => $timezone_override,
           ];
         }
       }
@@ -448,21 +450,17 @@ class FullCalendar extends StylePluginBase {
 
           /** @var \Drupal\date_recur\Plugin\Field\FieldType\DateRecurItem $item */
           foreach ($field_items as $index => $item) {
-            // Get DateRecur Occurrence Handler.
-            $occurrenceHandler = $item->getOccurrenceHandler();
-
             // If this field is a DateRecur field.
-            if ($occurrenceHandler->isRecurring()) {
-              // Get a list of occurrences for display.
-              $occurrences = $occurrenceHandler->getOccurrencesForDisplay($date_range['min'], $date_range['max']);
+            if ($item->isRecurring()) {
+              /** @var \Drupal\date_recur\DateRange[] $occurrences */
+              $occurrences = $item->getHelper()->getOccurrences();
 
               foreach ($occurrences as $occurrence) {
-                /** @var \DateTime $start */
-                $start = $occurrence['value'];
-                /** @var \DateTime $end */
-                $end = $occurrence['end_value'];
+                $event = $this->prepareEvent($entity, $field, $index, $occurrence->getStart(), $occurrence->getEnd());
 
-                $event = $this->prepareEvent($entity, $field, $index, $start, $end);
+                if (!empty($event)) {
+                  $events[] = $event;
+                }
               }
 
               $isRecurring = TRUE;
@@ -510,11 +508,11 @@ class FullCalendar extends StylePluginBase {
           $event_end->setTimestamp($event_end->getTimestamp() + $event_end->getOffset());
 
           $event = $this->prepareEvent($entity, $field, $index, $event_start, $event_end);
-        }
-      }
 
-      if (!empty($event)) {
-        $events[$delta] = $event;
+          if (!empty($event)) {
+            $events[$delta] = $event;
+          }
+        }
       }
     }
 
@@ -530,9 +528,9 @@ class FullCalendar extends StylePluginBase {
    *
    * @param int $delta
    *   Field delta.
-   * @param \DateTime $event_start
+   * @param \DateTimeInterface $event_start
    *   Start date of the event.
-   * @param \DateTime $event_end
+   * @param \DateTimeInterface $event_end
    *   End date of the event.
    *
    * @return array
