diff --git a/apps/calendar/lib/hooks.php b/apps/calendar/lib/hooks.php
index 22e8d8e20f28257bc1c6e7c31401546b2a9d693a..328d2951d231cde4669accd7da609c5b730a1449 100644
--- a/apps/calendar/lib/hooks.php
+++ b/apps/calendar/lib/hooks.php
@@ -22,6 +22,8 @@ class OC_Calendar_Hooks{
 			OC_Calendar_Calendar::deleteCalendar($calendar['id']);
 		}
 
+		OC_Calendar_Share::post_userdelete($parameters['uid']);
+
 		return true;
 	}
 }
diff --git a/apps/calendar/lib/share.php b/apps/calendar/lib/share.php
index 488495aefc424e02b6138d1eaa5ec7771585e547..54c531892f05b3c095b83022a6619fbab2fc91fb 100755
--- a/apps/calendar/lib/share.php
+++ b/apps/calendar/lib/share.php
@@ -256,4 +256,21 @@ class OC_Calendar_Share{
 			$stmt = OCP\DB::prepare("UPDATE *PREFIX*calendar_share_calendar SET active = ? WHERE share = ? AND sharetype = 'user' AND calendarid = ?");
 			$stmt->execute(array($active, $share, $id));
 		}
+
+		/*
+		 * @brief delete all shared calendars / events after a user was deleted
+		 * @param (string) $userid
+		 * @return (bool)
+		 */
+		public static function post_userdelete($userid){			
+			$stmt = OCP\DB::prepare('DELETE FROM *PREFIX*calendar_share_calendar WHERE owner = ?');
+			$stmt->execute(array($userid));
+			$stmt = OCP\DB::prepare('DELETE FROM *PREFIX*calendar_share_event WHERE owner = ?');
+			$stmt->execute(array($userid));
+			$stmt = OCP\DB::prepare("DELETE FROM *PREFIX*calendar_share_calendar WHERE share = ? AND sharetype = 'user'");
+			$stmt->execute(array($userid));
+			$stmt = OCP\DB::prepare("DELETE FROM *PREFIX*calendar_share_event WHERE share = ? AND sharetype = 'user'");
+			$stmt->execute(array($userid));
+			return true;
+		}
 }
\ No newline at end of file