I was investigating a similar case - create event in Gmail and invite 2 attendees - one for user with Outlook and one for user in Roundcube. Both accept the invitation, but user who accepted it in Roundcube is not marked with a check box in Gmail.
it turns out, that Roundcube sends possibly wrong DTSTAMP in meeting acceptance iTip. Comparing responses I noticed that original invitation from Gmail has
METHOD:REQUEST DTSTAMP:20170627T054332Z CREATED:20170627T054331Z LAST-MODIFIED:20170627T054331Z
Acceptance iTip coming from Outlook has:
METHOD:REPLY CREATED:20170627T054452Z DTSTAMP:20170627T054452Z LAST-MODIFIED:20170627T054452Z
But Roundcube sends iTip with:
METHOD:REPLY DTSTAMP:20170627T054331Z CREATED:20170627T054331Z LAST-MODIFIED:20170627T054331Z
It is one second behind from DTSTAMP value in invitation. If I send exactly the same response as Roundcube did, but modify DTSTAMP to be at least the same value as it was in invitation, then Gmail records the status of the attendee.
RFC5545 says that:
In the case of an iCalendar object that specifies a "METHOD" property, this property differs from the "CREATED" and "LAST- MODIFIED" properties. These two properties are used to specify when the particular calendar data in the calendar store was created and last modified. This is different than when the iCalendar object representation of the calendar service information was created or last modified.
I'm not sure I fully understand what they want to say here, but to me it looks like:
- DTSTAMP in REPLY should be later than it was in REQUEST
- DSTAMP should be different from CREATED and LAST-MODIFIED