diff --git a/src/java/davmail/caldav/CaldavConnection.java b/src/java/davmail/caldav/CaldavConnection.java index 2345cd00..0b3b8d19 100644 --- a/src/java/davmail/caldav/CaldavConnection.java +++ b/src/java/davmail/caldav/CaldavConnection.java @@ -347,7 +347,7 @@ public class CaldavConnection extends AbstractConnection { if (request.hasProperty("resourcetype")) { response.appendProperty("D:resourcetype", "" + - ""); + ""); } if (request.hasProperty("owner")) { if ("users".equals(request.getPathElement(1))) { @@ -373,6 +373,10 @@ public class CaldavConnection extends AbstractConnection { response.appendProperty("D:displayname", subFolder); } } + if (request.hasProperty("calendar-description")) { + response.appendProperty("C:calendar-description", ""); + } + response.endPropStatOK(); response.endResponse(); } @@ -604,6 +608,10 @@ public class CaldavConnection extends AbstractConnection { if (request.hasProperty("displayname")) { response.appendProperty("D:displayname", request.getLastPath()); } + if (request.hasProperty("getctag")) { + response.appendProperty("CS:getctag", "CS=\"http://calendarserver.org/ns/\"", + base64Encode(session.getFolderCtag(request.getExchangeFolderPath()))); + } response.endPropStatOK(); if (request.getDepth() == 1) { appendInbox(response, request, "inbox"); @@ -703,7 +711,7 @@ public class CaldavConnection extends AbstractConnection { if (request.hasProperty("calendar-home-set")) { if ("users".equals(prefix)) { - response.appendHrefProperty("C:calendar-home-set", "/users/" + actualPrincipal + "/calendar"); + response.appendHrefProperty("C:calendar-home-set", "/users/" + actualPrincipal + "/calendar/"); } else { response.appendHrefProperty("C:calendar-home-set", '/' + prefix + '/' + actualPrincipal); } @@ -1122,12 +1130,18 @@ public class CaldavConnection extends AbstractConnection { } public String getPath(String subFolder) { + String folderPath = null; if (subFolder == null || subFolder.length() == 0) { - return path; + folderPath = path; } else if (path.endsWith("/")) { - return path + subFolder; + folderPath = path + subFolder; } else { - return path + '/' + subFolder; + folderPath = path + '/' + subFolder; + } + if (folderPath.endsWith("/")) { + return folderPath; + } else { + return folderPath + '/'; } }