Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

An invalid ics is sent as a response to a calendar invitation #1168

Closed
m-a-v opened this issue Jul 5, 2019 · 15 comments
Closed

An invalid ics is sent as a response to a calendar invitation #1168

m-a-v opened this issue Jul 5, 2019 · 15 comments

Comments

@m-a-v
Copy link

m-a-v commented Jul 5, 2019

When an invitation is created in Outlook 365 or Google Calendar, an invalid ics file is sent in response by sabre/dav. Outlook converts it to an attachement with the following file name.

not supported calendar message.ics

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Sabre//Sabre VObject 4.2.0//EN
CALSCALE:GREGORIAN
METHOD:REPLY
BEGIN:VEVENT
UID:040000008200E00074C5B7101A82E00800000000E0778E624D33D501000000000000000
0100000007B3684F212336E4BAA4405C99A9611B6
DTSTAMP:20190705T142254Z
SEQUENCE:0
DTSTART;TZID=Europe/Berlin:20190708T123000
DTEND;TZID=Europe/Berlin:20190708T130000
SUMMARY:Test
ORGANIZER;CN="Tester, Test (External)":mailto:test.tester@test.com
ATTENDEE;PARTSTAT=ACCEPTED;CN=test.tester@test2.com:mailto:test@test.com
END:VEVENT
END:VCALENDAR

The ics file can not be validated. I suppose this is due to the following paragraph in RFC2445 (page 30): "An individual "VTIMEZONE" calendar component MUST be specified for each unique "TZID" parameter value specified in the iCalendar object."

How and where should the missing calendar comonent VTIMEZONE be added in the code?

If I get a hint I can try to fix it.

Used sabre/dav version: 3.2.2

@DeepDiver1975
Copy link
Member

Here is a pretty similar bugfix sabre-io/vobject#412

Give it a try and ping me If you need support

@m-a-v
Copy link
Author

m-a-v commented Jul 6, 2019

Thanks a lot. I am currently using the following plugins.

Sabre\CalDAV\Schedule\Plugin
Sabre\CalDAV\Schedule\IMipPlugin

Where in the code is the reply sent to the invitator? Does this location also use the vobject library? Is sabre/dav 4.0.0 already using the sabre/vobject which contains the fix, so I would just have to upgrade sabre/dav.

BTW: I think it's great that you're continuing to develop sabre/dav.

@m-a-v
Copy link
Author

m-a-v commented Jul 6, 2019

I've installed sabre/dav 4.0.0 which contains sabre/vobject (4.2.0) and therefore your fix (Broker: add timezone to CANCEL messages #412). The problem is still reproducible. Also if I cancel an event. If you could give me some locations where to look I could probably help.

BTW: After the upgrade (from 3.2.2 to 4.0.0) I had to apply a fix. Otherwise the server didn't work anymore (see here: #1024).

@renaudboyer
Copy link

We've experienced the same problem, we have a fix that add TZ on every kind of iTip. Preparing a PR

@renaudboyer
Copy link

While rebasing, I've seen it has been fixed.
Preparing a PR anyway it adds tests.

@m-a-v
Copy link
Author

m-a-v commented Jul 11, 2019

@renaudboyer Is the fix part of the sabre/dav 4.0.0 release? I ask because I've installed this version and still have the problems when testing with Outlook.

Which code locations are executed when a response is sent to an external event?

@renaudboyer
Copy link

I've mixed up REPLY and REQUEST.
Fix REPLY PR is here sabre-io/vobject#465

@m-a-v
Copy link
Author

m-a-v commented Apr 21, 2020

The problem still exists with sabre dav 4.1.0, I can create an appointment and can easily see when someone accepts an invitation. But when I delete the calendar entry, I get an error message with an attachment in Outlook (not supported calendar message.ics).

When I get an external invitation (created Outlook 365, Google), I can't see that I've accepted the invitation in the corresponding client. Shouldn't this feature work?

@m-a-v
Copy link
Author

m-a-v commented Apr 21, 2020

Probably related to #1249.

@m-a-v
Copy link
Author

m-a-v commented Apr 21, 2020

After applying all fixes as proposed in #1249 at least an invitation is sent to the organizer (e.g. Google). But the ics is not valid since it does not contain the VTIMEZONE. @renaudboyer Can you explain why the VTIMEZONE is not set? I am using/testing it with the latest sabre/dav 4.1.0.

invite.ics.txt

@qdchong
Copy link

qdchong commented Apr 23, 2020

Hi did you manage to solve the issue?

For my case, any invitation email sent to outlook will be deem as not supported ics format

@m-a-v
Copy link
Author

m-a-v commented Apr 23, 2020

@qdchong The issue is still open.

@qdchong
Copy link

qdchong commented Apr 27, 2020

@m-a-v meanwhile do you encounter the same issue when sending an email invitation from a caldav client to outlook?

@m-a-v
Copy link
Author

m-a-v commented Apr 27, 2020

@m-a-v meanwhile do you encounter the same issue when sending an email invitation from a caldav client to outlook?

No.

@m-a-v
Copy link
Author

m-a-v commented May 18, 2020

I have tested this again with the latest sabre/dav version 4.1.0. By using the PHPMailer library as in the StackOverflow example it works.

https://stackoverflow.com/questions/34282134/send-outlook-calendar-invitation-php/34305566#34305566

Since this is not really a bug of the framework and the VTIMEZONE bug has been fixed in vObject, I close the bug.

@m-a-v m-a-v closed this as completed May 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants