6.0.0-RC7
6/22/26

[#9854] iCalendar attachment may not be available in notification message
Summary iCalendar attachment may not be available in notification message
Queue Kronolith
Queue Version Git master
Type Bug
State Resolved
Priority 1. Low
Owners jan (at) horde (dot) org
Requester slusarz (at) horde (dot) org
Created 4/8/11 (5554 days ago)
Due
Updated 10/27/12 (4986 days ago)
Assigned 11/30/11 (5318 days ago)
Resolved 10/16/12 (4997 days ago)
Github Issue Link
Github Pull Request
Milestone
Patch No

History
612 Git Commit Comment #17 Reply to this comment
Changes have been made in Git (develop):

commit d94d32963740fda3026fea230c2854a26dc35255
Author: Jan Schneider <jan@horde.org>
Date:   Tue Oct 16 18:46:24 2012 +0200

     [jan] Use more compatible message format for iTip notifications 
(Bug #9854).

  kronolith/docs/CHANGES      |    1 +
  kronolith/lib/Kronolith.php |   13 +++++++++++--
  kronolith/package.xml       |    2 ++
  3 files changed, 14 insertions(+), 2 deletions(-)

http://git.horde.org/horde-git/-/commit/d94d32963740fda3026fea230c2854a26dc35255
584 Jan Schneider Assigned to Jan Schneider
Taken from Ben Klang
State ⇒ Resolved
 
514 Git Commit Comment #16 Reply to this comment
Changes have been made in Git (master):

commit d94d32963740fda3026fea230c2854a26dc35255
Author: Jan Schneider <jan@horde.org>
Date:   Tue Oct 16 18:46:24 2012 +0200

     [jan] Use more compatible message format for iTip notifications 
(Bug #9854).

  kronolith/docs/CHANGES      |    1 +
  kronolith/lib/Kronolith.php |   13 +++++++++++--
  kronolith/package.xml       |    2 ++
  3 files changed, 14 insertions(+), 2 deletions(-)

http://git.horde.org/horde-git/-/commit/d94d32963740fda3026fea230c2854a26dc35255
212 Michael Slusarz Comment #15 Reply to this comment
Ben promised to do some cross-client tests to find out which of 
those structures is most portable.
IMHO, the google method is the best:

0 [multipart/mixed] [-]
    1 [multipart/alternative] [-]
      1.1 [text/plain]
      1.2 [text/html]
      1.3 [text/calendar]
    2 invite.ics [application/ics]
351 Jan Schneider Comment #14
State ⇒ Assigned
Assigned to Ben Klang
Reply to this comment
Ben promised to do some cross-client tests to find out which of those 
structures is most portable.
502 Jan Schneider Comment #13 Reply to this comment
And finally iCal (which looks most broken of all):

0 [multipart/alternative] [-]
   1 [text/plain; charset=iso-8859-1]
   2 [multipart/mixed] [-]
     2.1 [text/html; charset=iso-8859-1]
     2.2 iCal-20111102-100028.ics [text/calendar]
     2.3 [text/html; charset=iso-8859-1]
341 Jan Schneider Comment #12 Reply to this comment
Outlook:

1 [text/calendar; charset=utf-8]
257 Jan Schneider Comment #11 Reply to this comment
Awesome, there aren't any two clients that do the same :) can somebody 
send me Outlook and iCal invites?
337 Jan Schneider Comment #10 Reply to this comment
Lightning:

0 [multipart/mixed] [-]
   1 [multipart/alternative] [-]
     1.1 [text/plain; charset=utf-8]
     1.2 [text/calendar; charset=utf-8]
   2 invite.ics [application/ics]

And in Outlook-compatibility-mode:

1 [text/calendar; charset=utf-8]
107 Jan Schneider Comment #9 Reply to this comment
Google:

0 [multipart/mixed] [-]
   1 [multipart/alternative] [-]
     1.1 [text/plain; charset=windows-1252]
     1.2 [text/html; charset=windows-1252]
     1.3 [text/calendar; charset=utf-8]
   2 invite.ics [application/ics]
246 Jan Schneider Comment #8 Reply to this comment
This is what iCloud uses:

0 [multipart/mixed] [-]
   1 [multipart/alternative] [-]
     1.1 [text/plain; charset=utf-8]
     1.2 [text/html; charset=utf-8]
   2 iCal-20111013-134128.ics [text/calendar]
274 Jan Schneider Comment #7 Reply to this comment
What structure do outlook and google calendar invites use? Do those 
programs, and programs like thunderbird, handle Michael's proposed 
structure gracefully?
I've just received an iTip response the other from what identified 
itself as "Mozilla Calendar", and that did you use this structure 
(leaving out the multipart/related part with the html version). A bit 
awkward though was the fact that it used text/calendar for the 
iCalendar part inside the multipart/alternative part, but 
application/ics inside the multipart/mixed part.
413 Chuck Hagenbuch Comment #6 Reply to this comment
What structure do outlook and google calendar invites use? Do those 
programs, and programs like thunderbird, handle Michael's proposed 
structure gracefully?
5311 Michael Slusarz Comment #5 Reply to this comment
Since they are the most rich part of the multipart/alternative 
message, they should show up, if the MUA supports it, right?
This is correct.
If not, the user can't make much use of it anyway.
I don't agree with this statement.  What if I receive an event 
notification and want to import it into a calendar not associated with 
my MUA program.  For example, I want to import to a shared calendar on 
Google Calendar.  It would be nice to be able to download the .ics 
file to upload to Google Calendar.

4910 Jan Schneider Comment #4 Reply to this comment
Since they are the most rich part of the multipart/alternative 
message, they should show up, if the MUA supports it, right? If not, 
the user can't make much use of it anyway.
2510 Michael Slusarz Comment #3 Reply to this comment
Other than the fact that the iCalendar file won't show up as an attachment?
4110 Jan Schneider Comment #2
State ⇒ Feedback
Reply to this comment
If it's just the wording, we can replace it. Or is this structure 
causing real-world problems?
3710 Michael Slusarz Comment #1
Priority ⇒ 1. Low
State ⇒ Unconfirmed
Patch ⇒ No
Milestone ⇒
Summary ⇒ iCalendar attachment may not be available in notification message
Type ⇒ Bug
Queue ⇒ Kronolith
Reply to this comment
Another example of the multipart/alternative problem.  We send out 
notification messages that look like this:

multipart/alternative
   text/plain
   multipart/related
     text/html
     image/png
   text/calendar

The problem comes if a MUA does not know how to handle text/calendar.   
Both the plain and html contains language about an attached iCalendar 
file.  But as discussed in other bugs, text/calendar, if it can't be 
displayed, must NOT be shown as an attachment.  Multipart/alternative 
is only designed to provide different viewable representations, it is 
not intended to be a container for downloadable attachments.

The proper way of doing this would be as follows:

multipart/alternative
   multipart/mixed
     multipart/alternative
       text/plain
       multipart/related
         text/html
       image/png
     text/calendar
   text/calendar

Yes - text/calendar is repeated twice.  However, this is expected (and 
necessary) behavior.

A rarely used MIME type (message/external-body - RFC 1873) was 
designed to solve such issues - it allows data to be defined in one 
MIME part, and the data to be duplicated in other body parts by 
reference to the first MIME part.  But I'm not sure how many MUAs 
support this.

Saved Queries