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

Calendar invitation accept/decline buttons missing #21189

Closed
schiessle opened this issue Jun 2, 2020 · 30 comments · Fixed by #28692
Closed

Calendar invitation accept/decline buttons missing #21189

schiessle opened this issue Jun 2, 2020 · 30 comments · Fixed by #28692
Assignees
Labels
1. to develop Accepted and waiting to be taken care of bug needs info

Comments

@schiessle
Copy link
Member

I just received a calender invitation and it seems like the accept/decline buttons are missing in the latest version (Nextcloud 19, Calendar 2.0.3):

image

@georgehrke
Copy link
Member

@schiessle Wrong repo ;)

@georgehrke georgehrke transferred this issue from nextcloud/calendar Jun 2, 2020
@georgehrke georgehrke added 0. Needs triage Pending check for reproducibility or if it fits our roadmap bug needs info labels Jun 2, 2020
@georgehrke
Copy link
Member

Not reproducible, please provide better reproduction steps

@schiessle
Copy link
Member Author

I just checked the source code of the mail to make sure that it is not a rendering issue but also the source code doesn't contain the button.

Other invitations I received afterwards also had the buttons included.

@wobben how did you created the invitation? Have you done anything special? Can you provide the exact steps how you created the invitation?

@wobben
Copy link

wobben commented Jun 3, 2020

@schiessle I created the appointment in the macOS Calendar app in my Sales calendar.
I just realized that I invited bjoern@nextcloud.com and not bjoern.schiessle@nextcloud.com.

Is this maybe the reason?

@schiessle
Copy link
Member Author

@wobben just send another invitation, these time to the right email address with the same result. The buttons are again missing 😕 Seems to be at least reproducible on Matthias' account

@wobben
Copy link

wobben commented Jun 3, 2020

I've sent the same invite now to georg.ehrke@nextcloud.com as well. You don't need to join this appointment ... ;-)

@georgehrke
Copy link
Member

@wobben I got the invite and it also doesn't show any buttons for me. Will look into it.
Thx!

@georgehrke georgehrke added 1. to develop Accepted and waiting to be taken care of and removed 0. Needs triage Pending check for reproducibility or if it fits our roadmap labels Jun 4, 2020
@georgehrke georgehrke self-assigned this Jun 4, 2020
@georgehrke georgehrke added this to the Nextcloud 19.0.2 milestone Jun 4, 2020
@frightener
Copy link

The buttons seem to be missing when using third-party apps (Thunderbird in my case). Creating an invite from the Nextcloud web UI worked as expected.

@georgehrke
Copy link
Member

@frightener could you provide the intercepted HTTP request please?

@frightener
Copy link

Sorry, it seems like you can ignore my comment. In my case the invitation mail was just formatted differently by Thunderbird when the event was created within the same instance of Thunderbird.

@mrtumnus
Copy link

mrtumnus commented May 24, 2021

Here are the entries from nextcloud.log when Thunderbird creates the event:

{"reqId":"eNpNFd8IfTc1XU7f0Qpl","level":0,"time":"2021-05-24T17:08:16+00:00","remoteAddr":"x.x.x.x","user":"******","app":"core","method":"PUT","url":"/remote.php/dav/calendars/******/personal/77e9fedb-323d-4090-b619-c3fca5e00f2e.ics","message":"Sent mail to \"Array\n(\n    [******@example.com] => ****** ********\n)\n\" with subject \"Invitation: Test 1\"","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2","version":"20.0.9.1"}
{"reqId":"eNpNFd8IfTc1XU7f0Qpl","level":0,"time":"2021-05-24T17:08:16+00:00","remoteAddr":"x.x.x.x","user":"******","app":"core","method":"PUT","url":"/remote.php/dav/calendars/******/personal/77e9fedb-323d-4090-b619-c3fca5e00f2e.ics","message":"++ Starting Swift_SmtpTransport\n<< 220 mail.localdomain ESMTP Postfix (Debian/GNU)\r\n\n>> EHLO nextcloud.example.com\r\n\n<< 250-mail.localdomain\r\n250-PIPELINING\r\n250-SIZE 10240000\r\n250-VRFY\r\n250-ETRN\r\n250-STARTTLS\r\n250-ENHANCEDSTATUSCODES\r\n250-8BITMIME\r\n250-DSN\r\n250 CHUNKING\r\n\n++ Swift_SmtpTransport started\n>> MAIL FROM:<nextcloud@example.com>\r\n\n>> RCPT TO:<******@example.com>\r\n\n>> DATA\r\n\n<< 250 2.1.0 Ok\r\n\n<< 250 2.1.5 Ok\r\n\n<< 354 End data with <CR><LF>.<CR><LF>\r\n\n>> \r\n.\r\n\n<< 250 2.0.0 Ok: queued as 1C58A8E24\r\n","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2","version":"20.0.9.1"}
{"reqId":"eNpNFd8IfTc1XU7f0Qpl","level":1,"time":"2021-05-24T17:08:16+00:00","remoteAddr":"x.x.x.x","user":"******","app":"no app in context","method":"PUT","url":"/remote.php/dav/calendars/******/personal/77e9fedb-323d-4090-b619-c3fca5e00f2e.ics","message":"Deprecated event type for \\OCA\\DAV\\CalDAV\\CalDavBackend::createCalendarObject: Symfony\\Component\\EventDispatcher\\GenericEvent is used","userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.10.2","version":"20.0.9.1"}

Log entries when creating an event in Calendar web app are identical (except for user agent and ids, obv). Doesn't seem like I'm looking in the right place, as this is showing the email notification event rather than the actual POST/PUT of the event.

@mrtumnus
Copy link

Hacking around in the code and added some logging. The conditional in IMipPlugin.php here depends on getAttendeeRSVP(). For the web event case, this returns 1, but for Thunderbird it returns nothing (null?).

@mrtumnus
Copy link

mrtumnus commented May 24, 2021

Ok, I think I found it. Thunderbird does not set the RSVP field in the ATTENDEE property. Not sure what we can do about this... Perhaps this is an issue we could raise in Thunderbird or the TbSync extension (not sure where the event population happens).

Attendee field generated from Thunderbird:

ATTENDEE;CN=****** ********;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION:ma
 ilto:******@example.com

Attendee field generated from Calendar web app:

ATTENDEE;CN=****** ********;CUTYPE=INDIVIDUAL;PARTSTAT=NEEDS-ACTION;ROLE=
 REQ-PARTICIPANT;RSVP=TRUE:mailto:******@example.com

EDIT: RSVP field checking was added in #12392.

@mrtumnus
Copy link

Looks like someone @ Mozilla is aware of this:
https://bugzilla.mozilla.org/show_bug.cgi?id=1683636

@mrtumnus
Copy link

Aha! Setting a participant in Thunderbird to optional results in RSVP=TRUE, and buttons are displayed. Kinda goofy if you ask me (why do I care if optional participants are attending or not?!), but at least there's a workaround which allows the use Thunderbird for meeting invites.

@JMoVS
Copy link

JMoVS commented May 26, 2021

On Mac OS Catalina, there seems to be the same issue. The buttons are there when during creation, participants are added. But if participants are added to an event that already exists, then no buttons appear.

Expected behaviour in my mind would be:

  • if participant list changes and a new participant is added to an existing calendar entry, that participant should get an email with accept/Decline buttons
  • if anything about the event changes, triggering a resend of that email, this email should individually per recipient contain accept/decline buttons (similar to how Google calendar does it - just always show those buttons!).
  • bonus points for showing current attendee status in the email when anything of an event changes so people don't have to reconfirm

@JMoVS

This comment has been minimized.

@ChristophWurst
Copy link
Member

We'll have a look

@ChristophWurst
Copy link
Member

Looks like someone @ Mozilla is aware of this:
https://bugzilla.mozilla.org/show_bug.cgi?id=1683636

I'll have to reproduce myself but that looks promising.

On Mac OS Catalina, there seems to be the same issue. The buttons are there when during creation, participants are added. But if participants are added to an event that already exists, then no buttons appear.

Mind exporting the original ics for us for inspection? You can redact any sensitive infos.

@miaulalala miaulalala self-assigned this Sep 1, 2021
@miaulalala
Copy link
Contributor

Conclusion of internal discussion: remove the RSVP check on the email.

@JMoVS
Copy link

JMoVS commented Sep 1, 2021

@ChristophWurst @miaulalala Is my input still needed or did you reproduce - not sure after

Conclusion of internal discussion: remove the RSVP check on the email.

;-)

@miaulalala
Copy link
Contributor

@JMoVS I'm still glad of any input! Ideally we would do this RFC conform at a later date - but this likely depends on Thunderbird fixing their RSVPs :)

@JMoVS
Copy link

JMoVS commented Sep 1, 2021

hmm, I don't really see how that is dependent on Thunderbird. When I add a participant in Apple Calendar, it will trigger a nextcloud invitiation email (with an attached ics), but without the accept/decline button. But that is completely independent from thunderbird.

@miaulalala
Copy link
Contributor

Thunderbird is not sending an RSVP parameter, which we are currently checking for. See here: https://datatracker.ietf.org/doc/html/rfc5545#section-3.2.17

@JMoVS
Copy link

JMoVS commented Sep 1, 2021

so should I open a new issue for Apple Mail and/or is Mail/Calendar just also not sending this RSVP parameter?

@miaulalala
Copy link
Contributor

Ah yes, yours was an AppleMail issue. Hm, could you post the icals AppleMail is creating?

@miaulalala
Copy link
Contributor

miaulalala commented Sep 1, 2021

So I think it would be a good idea for this code

if (($method == self::METHOD_REQUEST) && $this->getAttendeeRSVP($attendee)) {
to look at the ROLE parameter too, not just RSVP. That would help in a lot of cases - any REQ-PARTICIPANT would need to send a reply and needs those buttons.

The RFC specifies for the ROLE:

If not specified on a property that allows this parameter, the default value is REQ-PARTICIPANT.

@JMoVS Apple Mail has the same issue as Thunderbird btw, see here: #11230, so this solution should help with your issues too.

@JMoVS
Copy link

JMoVS commented Sep 7, 2021

very curious if this is gonna solve the issue (as I'm not sure that Apple Mail itself is strictly speaking involved when the Apple calendar app updates the server over CalDAV - I'll see what it looks like after the next auto update ;-)

@JMoVS
Copy link

JMoVS commented Sep 7, 2021

thanks for the fix!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop Accepted and waiting to be taken care of bug needs info
Projects
None yet
Development

Successfully merging a pull request may close this issue.