private void fixAttendees(VObject vObject, boolean fromServer) { if (vObject.properties != null) { for (VProperty property : vObject.properties) { if ("ATTENDEE".equalsIgnoreCase(property.getKey())) { if (fromServer) { // If this is coming from the server, strip out RSVP for this // user as an attendee where the partstat is something other // than PARTSTAT=NEEDS-ACTION since the RSVP confuses iCal4 into // thinking the attendee has not replied if (isCurrentUser(property) && property.hasParam("RSVP", "TRUE")) { VProperty.Param partstat = property.getParam("PARTSTAT"); if (partstat == null || !"NEEDS-ACTION".equals(partstat.getValue())) { property.removeParam("RSVP"); } } } else { property.setValue(replaceIcal4Principal(property.getValue())); } } } } }