diff --git a/calendar/inc/class.calendar_uiforms.inc.php b/calendar/inc/class.calendar_uiforms.inc.php
index f27e7858ab..25a95f9e97 100644
--- a/calendar/inc/class.calendar_uiforms.inc.php
+++ b/calendar/inc/class.calendar_uiforms.inc.php
@@ -1022,7 +1022,8 @@ class calendar_uiforms extends calendar_ui
 			}
 			else
 			{
-				Framework::refresh_opener($msg, 'calendar', $event['id'], 
+				Framework::refresh_opener($msg, 'calendar', 
+					$event['id'] . ($content['edit_single'] ? ':' . (int)$content['edit_single'] : '' ),
 					$button == 'save' && $client_updated ? ($content['id'] ? $update_type : 'add') : 'delete'
 				);
 			}
diff --git a/calendar/js/et2_widget_event.js b/calendar/js/et2_widget_event.js
index 9fc3ce51df..8c95109cca 100644
--- a/calendar/js/et2_widget_event.js
+++ b/calendar/js/et2_widget_event.js
@@ -184,7 +184,7 @@ var et2_calendar_event = (function(){ "use strict"; return et2_valueWidget.exten
 	 */
 	_UID_callback: function _UID_callback(event) {
 		// Copy to avoid changes, which may cause nm problems
-		var value = jQuery.extend({},event);
+		var value = event === null ? null : jQuery.extend({},event);
 
 		// Make sure id is a string, check values
 		if(value)
@@ -757,12 +757,12 @@ var et2_calendar_event = (function(){ "use strict"; return et2_valueWidget.exten
 		{
 			var old_daywise = egw.dataGetUIDdata(old_cache_id);
 			old_daywise = old_daywise && old_daywise.data ? old_daywise.data : [];
-			old_daywise.splice(old_daywise.indexOf(this.options.value.id),1);
+			old_daywise.splice(old_daywise.indexOf(this.options.value.row_id),1);
 			egw.dataStoreUID(old_cache_id,old_daywise);
 
-			if (new_daywise.indexOf(event.id) < 0)
+			if (new_daywise.indexOf(event.row_id) < 0)
 			{
-				new_daywise.push(event.id);
+				new_daywise.push(event.row_id);
 			}
 			if(new_daywise.data !== null)
 			{