diff --git a/plugins/calendar/drivers/kolab/kolab_calendar.php b/plugins/calendar/drivers/kolab/kolab_calendar.php index 29bc01e5..43165421 100644 --- a/plugins/calendar/drivers/kolab/kolab_calendar.php +++ b/plugins/calendar/drivers/kolab/kolab_calendar.php @@ -291,7 +291,7 @@ class kolab_calendar extends kolab_storage_folder_api } // find and merge exception for the first instance - if (!empty($event['recurrence']) && is_array($event['recurrence']['EXCEPTIONS'])) { + if ($virtual && !empty($event['recurrence']) && is_array($event['recurrence']['EXCEPTIONS'])) { $event_date = $event['start']->format('Ymd'); foreach ($event['recurrence']['EXCEPTIONS'] as $exception) { $exdate = $exception['recurrence_date'] ? $exception['recurrence_date']->format('Ymd') : substr($exception['_instance'], 0, 8); diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php index 3e3f0fcb..0a9790c9 100644 --- a/plugins/calendar/drivers/kolab/kolab_driver.php +++ b/plugins/calendar/drivers/kolab/kolab_driver.php @@ -1674,10 +1674,10 @@ class kolab_driver extends calendar_driver unset($record['recurrence']); // add instance identifier to first occurrence (master event) + // do not add 'recurrence_date' though in order to keep the master even being exported as such if ($record['recurrence'] && !$record['recurrence_id'] && !$record['_instance']) { - $recurrence_id_format = $event['allday'] ? 'Ymd' : 'Ymd\THis'; - $record['recurrence_date'] = $record['start']; - $record['_instance'] = $record['recurrence_date']->format($recurrence_id_format); + $recurrence_id_format = $record['allday'] ? 'Ymd' : 'Ymd\THis'; + $record['_instance'] = $record['start']->format($recurrence_id_format); } // remove internals