diff --git a/src/java/davmail/exchange/dav/DavExchangeSession.java b/src/java/davmail/exchange/dav/DavExchangeSession.java index 544e0e12..04111137 100644 --- a/src/java/davmail/exchange/dav/DavExchangeSession.java +++ b/src/java/davmail/exchange/dav/DavExchangeSession.java @@ -1307,10 +1307,11 @@ public class DavExchangeSession extends ExchangeSession { result = getICSFromItemProperties(); } // debug code - if (new String(result).indexOf("VTODO") < 0) { + /*if (new String(result).indexOf("VTODO") < 0) { + LOGGER.debug("Original body: " + new String(result)); result = getICSFromItemProperties(); LOGGER.debug("Rebuilt body: " + new String(result)); - } + }*/ return result; } @@ -1338,6 +1339,8 @@ public class DavExchangeSession extends ExchangeSession { davPropertyNameSet.add(Field.getPropertyName("sensitivity")); davPropertyNameSet.add(Field.getPropertyName("alldayevent")); davPropertyNameSet.add(Field.getPropertyName("busystatus")); + davPropertyNameSet.add(Field.getPropertyName("reminderset")); + davPropertyNameSet.add(Field.getPropertyName("reminderdelta")); PropFindMethod propFindMethod = new PropFindMethod(permanentUrl, davPropertyNameSet, 0); try { @@ -1405,6 +1408,18 @@ public class DavExchangeSession extends ExchangeSession { "1".equals(getPropertyIfExists(davPropertySet, "alldayevent")) ? "TRUE" : "FALSE"); vEvent.setPropertyValue("X-MICROSOFT-CDO-BUSYSTATUS", getPropertyIfExists(davPropertySet, "busystatus")); + if ("1".equals(getPropertyIfExists(davPropertySet, "reminderset"))) { + VObject vAlarm = new VObject(); + vAlarm.type = "VALARM"; + vAlarm.setPropertyValue("ACTION", "DISPLAY"); + vAlarm.setPropertyValue("DISPLAY", "Reminder"); + String reminderdelta = getPropertyIfExists(davPropertySet, "reminderdelta"); + VProperty vProperty = new VProperty("TRIGGER", "-PT"+reminderdelta+ 'M'); + vProperty.addParam("VALUE", "DURATION"); + vAlarm.addProperty(vProperty); + vEvent.addVObject(vAlarm); + } + localVCalendar.addVObject(vEvent); result = localVCalendar.toString().getBytes("UTF-8"); } catch (MessagingException e) { diff --git a/src/java/davmail/exchange/dav/Field.java b/src/java/davmail/exchange/dav/Field.java index af988bd0..e43b0580 100644 --- a/src/java/davmail/exchange/dav/Field.java +++ b/src/java/davmail/exchange/dav/Field.java @@ -177,6 +177,9 @@ public class Field { createField(URN_SCHEMAS_CALENDAR, "rrule"); // DistinguishedPropertySetType.PublicStrings/urn:schemas:calendar:rrule/PtypMultipleString createField(URN_SCHEMAS_CALENDAR, "exdate"); // DistinguishedPropertySetType.PublicStrings/urn:schemas:calendar:exdate/PtypMultipleTime + createField(SCHEMAS_MAPI, "reminderset"); // PidLidReminderSet + createField(SCHEMAS_MAPI, "reminderdelta"); // PidLidReminderDelta + // TODO createField(SCHEMAS_MAPI, "allattendeesstring"); // PidLidAllAttendeesString createField(SCHEMAS_MAPI, "required_attendees"); // PidLidRequiredAttendees