diff --git a/caldav/davclient.py b/caldav/davclient.py index 4da3e6b1..445b3590 100644 --- a/caldav/davclient.py +++ b/caldav/davclient.py @@ -220,6 +220,10 @@ def _parse_response(self, response) -> Tuple[str, List[_Element], Optional[Any]] self.validate_status(status) elif elem.tag == dav.Href.tag: assert not href + # Fix for https://github.com/python-caldav/caldav/issues/471 + # Confluence server quotes the user email twice. We unquote it manually. + if "%2540" in elem.text: + elem.text = elem.text.replace("%2540", "%40") href = unquote(elem.text) elif elem.tag == dav.PropStat.tag: propstats.append(elem) diff --git a/caldav/objects.py b/caldav/objects.py index e88725fd..ff4026ec 100755 --- a/caldav/objects.py +++ b/caldav/objects.py @@ -312,7 +312,6 @@ def get_properties( exchange_path = path[:-1] else: exchange_path = path + "/" - properties = {unquote(k): v for k, v in properties.items()} if path in properties: rc = properties[path]