diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php
index 84294971b417a52bbd0150ab430dee975ea9baf7..0cff119b1bd16c300385f687f1faea795654f9d6 100644
--- a/apps/dav/lib/CalDAV/CalDavBackend.php
+++ b/apps/dav/lib/CalDAV/CalDavBackend.php
@@ -345,9 +345,6 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription
 		$principals = $this->principalBackend->getGroupMembership($principalUriOriginal, true);
 		$principals = array_merge($principals, $this->principalBackend->getCircleMembership($principalUriOriginal));
 
-		$principals = array_map(function ($principal) {
-			return urldecode($principal);
-		}, $principals);
 		$principals[] = $principalUri;
 
 		$fields = array_values($this->propertyMap);
diff --git a/apps/dav/lib/DAV/Sharing/Backend.php b/apps/dav/lib/DAV/Sharing/Backend.php
index 979eb3913543b1dfd725f316964256609ea09588..9dbbc2f3970fed72022d2c522fb54216313219ce 100644
--- a/apps/dav/lib/DAV/Sharing/Backend.php
+++ b/apps/dav/lib/DAV/Sharing/Backend.php
@@ -107,6 +107,7 @@ class Backend {
 			return;
 		}
 
+		$principal[2] = urldecode($principal[2]);
 		if (($principal[1] === 'users' && !$this->userManager->userExists($principal[2])) ||
 			($principal[1] === 'groups' && !$this->groupManager->groupExists($principal[2]))) {
 			// User or group does not exist