diff --git a/src/java/davmail/exchange/ExchangeSession.java b/src/java/davmail/exchange/ExchangeSession.java index 5bf02e5a..88f3e3a1 100644 --- a/src/java/davmail/exchange/ExchangeSession.java +++ b/src/java/davmail/exchange/ExchangeSession.java @@ -3304,7 +3304,7 @@ public abstract class ExchangeSession { * @param folderPath absolute folder path * @return true if folderPath is a public or shared folder */ - public abstract boolean isMainCalendar(String folderPath); + public abstract boolean isMainCalendar(String folderPath) throws IOException; static final String MAILBOX_BASE = "/cn="; diff --git a/src/java/davmail/exchange/ews/EwsExchangeSession.java b/src/java/davmail/exchange/ews/EwsExchangeSession.java index fad20447..064a3dc7 100644 --- a/src/java/davmail/exchange/ews/EwsExchangeSession.java +++ b/src/java/davmail/exchange/ews/EwsExchangeSession.java @@ -1715,7 +1715,7 @@ public class EwsExchangeSession extends ExchangeSession { createOrUpdateItemMethod.setTimezoneContext(EwsExchangeSession.this.getVTimezone().getPropertyValue("TZID")); } //} - } + } executeMethod(createOrUpdateItemMethod); itemResult.status = createOrUpdateItemMethod.getStatusCode(); @@ -2160,8 +2160,10 @@ public class EwsExchangeSession extends ExchangeSession { } @Override - public boolean isMainCalendar(String folderPath) { - return "calendar".equalsIgnoreCase(folderPath) || (currentMailboxPath + "/calendar").equalsIgnoreCase(folderPath); + public boolean isMainCalendar(String folderPath) throws IOException { + FolderId currentFolderId = getFolderId(folderPath); + FolderId calendarFolderId = getFolderId("calendar"); + return calendarFolderId.name.equals(currentFolderId.name) && calendarFolderId.value.equals(currentFolderId.value); } @Override