diff --git a/NEWS b/NEWS
index 18c5c2c6f..cbad960cb 100644
--- a/NEWS
+++ b/NEWS
@@ -27,6 +27,7 @@ Bug fixes
- [web] honor the domain default SOGoAppointmentSendEMailNotifications (#3729)
- [web] the login module parameter is now properly restored when set as "Last used"
- [web] if cn isn't found for shared mailboxes, use email address (#3733)
+ - [web] fixed handling of attendees when updating an event
3.1.2 (2016-06-06)
------------------
diff --git a/SoObjects/Appointments/iCalEntityObject+SOGo.m b/SoObjects/Appointments/iCalEntityObject+SOGo.m
index d12aae19a..a4312d009 100644
--- a/SoObjects/Appointments/iCalEntityObject+SOGo.m
+++ b/SoObjects/Appointments/iCalEntityObject+SOGo.m
@@ -158,7 +158,7 @@ NSNumber *iCalDistantFutureNumber = nil;
}
}
}
- [attendeeData setObject: [[currentAttendee partStat] lowercaseString] forKey: @"status"];
+ [attendeeData setObject: [[currentAttendee partStat] lowercaseString] forKey: @"partstat"];
[attendeeData setObject: [[currentAttendee role] lowercaseString] forKey: @"role"];
if ([[currentAttendee delegatedTo] length])
[attendeeData setObject: [[currentAttendee delegatedTo] rfc822Email] forKey: @"delegatedTo"];
@@ -232,7 +232,9 @@ NSNumber *iCalDistantFutureNumber = nil;
[currentAttendee setCn: [currentData objectForKey: @"name"]];
[currentAttendee setEmail: currentEmail];
}
- [currentAttendee
+ if (!currentAttendee || ![[currentAttendee role] isEqualToString: role])
+ // Set the RSVP only if this is a new attendee or the role has changed
+ [currentAttendee
setRsvp: ([role isEqualToString: @"NON-PARTICIPANT"]
? @"FALSE"
: @"TRUE")];
diff --git a/UI/MailPartViewers/UIxMailPartICalViewer.m b/UI/MailPartViewers/UIxMailPartICalViewer.m
index caacda76d..042790529 100644
--- a/UI/MailPartViewers/UIxMailPartICalViewer.m
+++ b/UI/MailPartViewers/UIxMailPartICalViewer.m
@@ -548,7 +548,7 @@
if (![[person delegatedTo] length])
[a addObject: [NSDictionary dictionaryWithObjectsAndKeys: ([person cnWithoutQuotes] ? [person cnWithoutQuotes] : [person rfc822Email]), @"name",
[person rfc822Email], @"email",
- [[person partStatWithDefault] lowercaseString], @"status", nil]];
+ [[person partStatWithDefault] lowercaseString], @"partstat", nil]];
}
[d setObject: a forKey: @"participants"];
diff --git a/UI/Scheduler/UIxAppointmentEditor.m b/UI/Scheduler/UIxAppointmentEditor.m
index 7a25ceec1..c8fc7bcd2 100644
--- a/UI/Scheduler/UIxAppointmentEditor.m
+++ b/UI/Scheduler/UIxAppointmentEditor.m
@@ -409,7 +409,7 @@
* @apiParam {String} [attendees.name] Attendee's name
* @apiParam {String} attendees.email Attendee's email address
* @apiParam {String} [attendees.uid] System user ID
- * @apiParam {String} attendees.status Attendee's participation status
+ * @apiParam {String} attendees.partstat Attendee's participation status
* @apiParam {String} [attendees.role] Either CHAIR, REQ-PARTICIPANT, OPT-PARTICIPANT, or NON-PARTICIPANT
* @apiParam {String} [attendees.delegatedTo] User that the original request was delegated to
* @apiParam {String} [attendees.delegatedFrom] User the request was delegated from
@@ -617,7 +617,7 @@
* @apiSuccess (Success 200) {String} [attendees.name] Attendee's name
* @apiSuccess (Success 200) {String} attendees.email Attendee's email address
* @apiSuccess (Success 200) {String} [attendees.uid] System user ID
- * @apiSuccess (Success 200) {String} attendees.status Attendee's participation status
+ * @apiSuccess (Success 200) {String} attendees.partstat Attendee's participation status
* @apiSuccess (Success 200) {String} [attendees.role] Either CHAIR, REQ-PARTICIPANT, OPT-PARTICIPANT, or NON-PARTICIPANT
* @apiSuccess (Success 200) {String} [attendees.delegatedTo] User that the original request was delegated to
* @apiSuccess (Success 200) {String} [attendees.delegatedFrom] User the request was delegated from
diff --git a/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox b/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox
index 006a084af..fa1d81482 100644
--- a/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox
+++ b/UI/Templates/MailPartViewers/UIxMailPartICalViewer.wox
@@ -261,7 +261,7 @@