Accepting meeting invite fails due to bad Outlook formatting

I have an issue when attempting to add meeting invites from two colleagues who both run Outlook for Mac. I run Ubuntu, with Thunderbird and Lightning for email and calendar support, with a Caldav connection to my Nextcloud calendar. This works great 99% of the time. I can accept invites from Windows Outlooks users and others, but when wither of two of my colleagues send me invites, they cannot be added to my NC calendar or they fail with an error:

An error has occurred
Processing message failed. Status: 80004005.

I’ve dug into this way deeper than I expected I’d have to, but it appears that there are two issues. The timezone is throwing the initial error, and when I correct it manually then I get a different error (sorry I haven’t recorded it but I’ve already traced it to the source). This next error comes from the fact that Outlook for Mac adds an entry for “X-ENTOURAGE_UUID” which is broken because underscore character is not allowed in the iCalendar spec. Removing this line, or changing it to a hyphen corrects the problem, and then the invite can be processed successfully.

Digging DEEP into this issue, it appears that SabreDAV has an “OPTION_FORGIVING” mode to correct for exactly these standard violations by basically replacing the underscore with a hyphen. I am not sure if it corrects the timezone issue or not.

The timezone problem appears to be due to a non-city based timezone being selected on the sender’s side. Correcting to a city-based timezone resolve the issue, for example:

Change “Eastern Time (US & Canada)” to “America/New_York” and everything works.

Is there anything we can do to prevent these issues?

It’s annoying to have to edit the meeting.ics files by hand from just a couple of senders… I can imagine this would be a show-stopper if someone had more Outlook on Mac in their organization and attempted to integrate with a NC instance…

Here’s a link to the Sabre documentation on “OPTION_FORGIVING”:

http://sabre.io/vobject/icalendar/

I know that they’re still trying to improve the Outlook implementation, but I think you should open an issue ticket in the server repository to get this specific problem addressed.

I wanted to see if there was some undocumented way to enable the Sabre “OPTION_FORGIVING” or if it’s already enabled (can’t tell from poking around the 3rd party files) then debug why it doesn’t seem to be doing what it’s supposed to do.

I am not well-versed in PHP else I’d take a stab at diagnosing and submitting a PR… I may still attempt it.

Anyone else familiar with the Sabre implementation on NC?