diff --git a/plugins/calendar/calendar.js b/plugins/calendar/calendar.js index 8324ea32..1386a9d4 100644 --- a/plugins/calendar/calendar.js +++ b/plugins/calendar/calendar.js @@ -681,7 +681,7 @@ window.rcmail && rcmail.addEventListener('init', function(evt) { if (event.location) { element.find('div.fc-event-title').after('
@ ' + Q(event.location) + '
'); } - if (event.recurrence_id) + if (event.recurrence) element.find('div.fc-event-time').append(''); if (event.alarms) element.find('div.fc-event-time').append(''); diff --git a/plugins/calendar/drivers/database/database_driver.php b/plugins/calendar/drivers/database/database_driver.php index e86da7d2..350304e4 100644 --- a/plugins/calendar/drivers/database/database_driver.php +++ b/plugins/calendar/drivers/database/database_driver.php @@ -191,6 +191,10 @@ class database_driver extends calendar_driver if ($old['recurrence'] || $old['recurrence_id']) { $master = $old['recurrence_id'] ? $this->get_event($old['recurrence_id']) : $old; + // keep saved exceptions (not submitted by the client) + if ($old['recurrence']['EXDATE']) + $event['recurrence']['EXDATE'] = $old['recurrence']['EXDATE']; + switch ($event['savemode']) { case 'new': $event['uid'] = $this->cal->generate_uid();