diff --git a/entity/Appointment_entity/grantDeleteProcess.js b/entity/Appointment_entity/grantDeleteProcess.js
index 4caa2d99cfdda2637190ab5c76a15565666b79b5..aef302f111201f63dc427328d2e4db900ac4c0d3 100644
--- a/entity/Appointment_entity/grantDeleteProcess.js
+++ b/entity/Appointment_entity/grantDeleteProcess.js
@@ -2,6 +2,10 @@ import("system.vars");
 import("system.result");
 import("system.calendars");
 import("system.text");
+import("system.tools");
 
-var owner = text.decodeMS(JSON.parse(vars.get("$param.Entry_param"))["h"])[1].split(":")[1];
-result.string(calendars.hasPermission([owner], calendars.VEVENT, "WRITE"));
\ No newline at end of file
+
+var user = tools.getCurrentUser();
+var calUser = calendars.getCalendarUser(user["title"]);
+var calUserCn = text.decodeMS(calUser)[1].split(":")[1];
+result.string(calendars.hasPermission(calUserCn, calendars.VEVENT, "WRITE"));
\ No newline at end of file
diff --git a/entity/Appointment_entity/grantUpdateProcess.js b/entity/Appointment_entity/grantUpdateProcess.js
index 3562ea4a6c4ba8fda784eb7ea85abd591e022f87..e6ac4c8426c460fd26d1f16844a7844c09300153 100644
--- a/entity/Appointment_entity/grantUpdateProcess.js
+++ b/entity/Appointment_entity/grantUpdateProcess.js
@@ -2,7 +2,13 @@ import("system.vars");
 import("system.result");
 import("system.calendars");
 import("system.text");
+import("system.tools");
+import("system.logging");
 
-var owner = text.decodeMS(JSON.parse(vars.get("$param.Entry_param"))["h"])[1].split(":")[1];
-result.string(calendars.hasPermission([owner], calendars.VEVENT, "WRITE"));
 
+var user = tools.getCurrentUser();
+var calUser = calendars.getCalendarUser(user["title"]);
+var calUserCn = text.decodeMS(calUser)[1].split(":")[1];
+var permitted = calendars.hasPermission(calUserCn, calendars.VEVENT, "WRITE");
+
+result.string(permitted);
diff --git a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
index e56415a0faf52007f91bcc4e92f9ae20aebfa819..3d5ff22eafe395331b6e6d52bf359b60c6d91098 100644
--- a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
+++ b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js
@@ -9,6 +9,7 @@ import("system.datetime");
 import("system.eMath");
 import("system.util");
 import("system.neon");
+import("system.text");
 
 var appointmentSelect = newSelect("APPOINTMENT_ID").from("AB_APPOINTMENTLINK");
 var appointmentUids;
@@ -77,7 +78,7 @@ function buildEntry(pEntry, pMasterentry)
     if(pEntry[calendars.ORGANIZER2] != undefined)
         var organizer = pEntry[calendars.ORGANIZER2]["paramvalue"];
     if(pEntry[calendars.USER2] != undefined)
-        var owner = pEntry[calendars.USER2]["paramvalue"];
+        var owner = JSON.stringify(pEntry[calendars.USER2]);
     var status = pEntry[calendars.STATUS];
     var location = pEntry[calendars.LOCATION];
     var reminder = pEntry[calendars.REMINDER_DURATION];
diff --git a/entity/Appointment_entity/recordcontainers/jdito/onDelete.js b/entity/Appointment_entity/recordcontainers/jdito/onDelete.js
index 4e0e5c7a5c1257293965989052765e861a71fff7..6f6249aee33bd1be9f2247d09814ffba59a1d904 100644
--- a/entity/Appointment_entity/recordcontainers/jdito/onDelete.js
+++ b/entity/Appointment_entity/recordcontainers/jdito/onDelete.js
@@ -1,20 +1,30 @@
+import("system.logging");
 import("Sql_lib");
 import("system.neon");
 import("system.calendars");
 import("system.vars");
 
-if (vars.exists("$param.Entry_param"))
+var uid;
+
+if (vars.get("$param.Entry_param") != null)
 {
     var entry = JSON.parse(vars.getString("$param.Entry_param"));
     var reccurenceid = entry[calendars.RECURRENCEID];
+    
     if (reccurenceid == undefined) 
         reccurenceid = null;
     
-    calendars.removeEntryByUID(calendars.VEVENT, entry[calendars.USER2]["cn"], entry[calendars.ID], reccurenceid)
+    uid = entry[calendars.ID];
+    calendars.removeEntryByUID(calendars.VEVENT, entry[calendars.USER2]["cn"], uid, reccurenceid);
+}
+else if(vars.get("$field.OWNER"))
+{
+    uid = vars.get("$field.UID");
+    calendars.removeEntryByUID(calendars.VEVENT, JSON.parse(vars.get("$field.OWNER"))["cn"], uid, vars.get("$field.RECURRENCEID"));
+}
     
     /**
      * Deletes ApointmentLinks referring to the deleted Appointment.
      */
-    newWhereIfSet("AB_APPOINTMENTLINK.APPOINTMENT_ID", entry[calendars.ID])
-            .deleteData();
-}
\ No newline at end of file
+    newWhereIfSet("AB_APPOINTMENTLINK.APPOINTMENT_ID", uid)
+            .deleteData();
\ No newline at end of file