VCS files with HTML content

128 views
Skip to first unread message

Matt Price

unread,
Jun 4, 2021, 11:42:32 AM6/4/21
to mu-di...@googlegroups.com
Over the last (pandemic) year, I have been getting a lot of emails with vcal.vcs attachments, most of them generated by Zoom or occasionally some other teleconferencing platform. It appears to me that these files have an html description in the `X-ALT-DESC;FMTTYPE=text/html` field, nad Thunderbird displays them in a format that lets me identify the date and time and, mosti importantly, click on the invitation link.  I can see there has been some discussion on the ailing list and elsewhere about ical invitations, but I don't think that applies very well to these emails. Has someone figured out how to manage these invitations in a simple way in mu4e? I don't really need to import them into a calendar or anything (though that would be nice I guess); the main goal for me is, when the meeting is about to start, that I can find the email, open it, and easily click on the invitation link so I am not late for the meeting!
I appreciate any help people can give!

THanks,

Matt

Dirk-Jan C. Binnema

unread,
Jun 26, 2021, 4:59:10 AM6/26/21
to mu-di...@googlegroups.com
There's support for the ICS invitations in mu4e, but not VCS. I wonder
if we could extend the ICS support for this... Christophe?

In any case, you should be able to add an "Attachment action" (see the
manual) to extract the useful information from the VCS; this could be as
easy as writing a shell script that extracts the relevant bits.

Kind regards,
Dirk.

--
Dirk-Jan C. Binnema Helsinki, Finland
e:dj...@djcbsoftware.nl w:www.djcbsoftware.nl
gpg: 6987 9CED 1745 9375 0F14 DA98 11DD FEA9 DCC4 A036

Christophe Troestler

unread,
Jun 28, 2021, 5:15:33 AM6/28/21
to mu-di...@googlegroups.com, Dirk-Jan C. Binnema
Hi,

On 26 June 2021 at 11:46 +03, "Dirk-Jan C. Binnema" <dj...@djcbsoftware.nl> wrote:
> […] There's support for the ICS invitations in mu4e, but not VCS. I wonder if we could extend the ICS support for this... Christophe?

I may take a look later — but not before August, too busy before that.

Best,
C.

Matt Price

unread,
Jun 28, 2021, 8:34:59 AM6/28/21
to mu-di...@googlegroups.com, Dirk-Jan C. Binnema
Thanks Dirk-Jan and Christophe. 

A quick look at this just now suggests it's a tiny bit more complex than I'd hoped. I guess one would have to parse the date and time (maybe ical can do that), but also the HTML needs various text stitching to be legible as line breaks are inserted at random and a large number of punctuation marks are escaped.  There are also calls to various XML namespaces that probably provide formatting information that doesn't show up when the unescaped HTML is rendered in a browser.  Might make more sense to use the text description provided in the DESCRIPTION: EXTERNAL EMAIL field.

I'm sure there are command-line solutions out there, but I can't find them through a google search.  

For the record, here is an example VCS with some identifying info removed.  And thanks again!

Matt

```
BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN
VERSION:2.0
METHOD:REQUEST
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:Eastern Standard Time
BEGIN:STANDARD
DTSTART:16011104T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=11
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010311T020000
RRULE:FREQ=YEARLY;BYDAY=2SU;BYMONTH=3
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
ATTENDEE;CN=Matthew Price;RSVP=TRUE:mailto:matt....@utoronto.ca
CLASS:PUBLIC
CREATED:20210606T203818Z
DESCRIPTION:EXTERNAL EMAIL:\n\nSender is inviting you to a scheduled
 Zoom meeting.\n\n\n\nJoin Zoom Meeting\n\nhttps://us02web.zoom.us/j/111111111
 ?pwd=hashhere<https://us02web.zoom.us/j/11111111
 ?pwd=hashhere
\n\npasscode: pass here\n\nOne tap mobile\n\n+15873281099\,\,82693526704#
 \,\,\,\,*320691# Canada\n\n+16473744685\,\,82693526704#\,\,\,\,*320691# Ca
 nada\n\n\n\nDial by your location\n\n        +1 587 328 1099 Canada\n\n  
      +1 647 374 4685 Canada\n\n        +1 647 558 0588 Canada\n\n        +
 1 778 907 2071 Canada\n\n        +1 204 272 7920 Canada\n\n        +1 438
 809 7799 Canada\n\nMeeting ID: 826 9352 6704\n\npasscode: pass here\n\nFind y
 our local number: https://us02web.zoom.us/u/kHIG8dR0U <https://us02web.zoo
 m.us/u/kHIG8dR0U>\n\n\n\n\n\n
DTEND;TZID=Eastern Standard Time:20210611T164500
DTSTAMP:20210606T203818Z
DTSTART;TZID=Eastern Standard Time:20210611T154500
LAST-MODIFIED:20210606T203818Z
LOCATION:https://us02web.zoom.us/j/111111111?pwd=hashhere
 eW5iQT09
ORGANIZER;CN=sen...@sender.com:mailto:rplosker@inspirations
 olutions.com
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=en-ca:Sender's Zoom Meeting
TRANSP:OPAQUE
UID:long hash w a line break
X-ALT-DESC;FMTTYPE=text/html:<html xmlns:v="urn:schemas-microsoft-com:vml"
 xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-mic
 rosoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/
 12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Co
 ntent-Type content="text/html\; charset=us-ascii"><meta name=Generator con
 tent="Microsoft Word 15 (filtered medium)"><style><!--\n/* Font Definition
 s */\n@font-face\n {font-family:"Cambria Math"\;\n panose-1:2 4 5 3 5 4 6
 3 2 4\;}\n@font-face\n {font-family:Calibri\;\n panose-1:2 15 5 2 2 2 4 3
 2 4\;}\n/* Style Definitions */\np.MsoNormal\, li.MsoNormal\, div.MsoNorma
 l\n {margin:0cm\;\n font-size:11.0pt\;\n font-family:"Calibri"\,sans-serif
 \;\n mso-fareast-language:EN-US\;}\na:link\, span.MsoHyperlink\n {mso-styl
 e-priority:99\;\n color:#0563C1\;\n text-decoration:underline\;}\nspan.Ema
 ilStyle18\n {mso-style-type:personal-compose\;\n font-family:"Calibri"\,sa
 ns-serif\;\n color:windowtext\;}\n.MsoChpDefault\n {mso-style-type:export-
 only\;\n font-size:10.0pt\;}\n@page WordSection1\n {size:612.0pt 792.0pt\;
 \n margin:72.0pt 72.0pt 72.0pt 72.0pt\;}\ndiv.WordSection1\n {page:WordSec
 tion1\;}\n--></style><!--[if gte mso 9]><xml>\n<o:shapedefaults v:ext="edi
 t" spidmax="1026" />\n</xml><![endif]--><!--[if gte mso 9]><xml>\n<o:shape
 layout v:ext="edit">\n<o:idmap v:ext="edit" data="1" />\n</o:shapelayout><
 /xml><![endif]--></head><body lang=EN-CA link="#0563C1" vlink="#954F72" st
 yle='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>R<a
 name="WinZmBookmark_z1AF06">hea Plosker is inviting you to a scheduled Zoo
 m meeting.<o:p></o:p></a></p><p class=MsoNormal><span style='mso-bookmark:
 WinZmBookmark_z1AF06'><o:p>&nbsp\;</o:p></span></p><p class=MsoNormal><spa
 n style='mso-bookmark:WinZmBookmark_z1AF06'>Join Zoom Meeting<o:p></o:p></
 span></p><p class=MsoNormal><span style='mso-bookmark:WinZmBookmark_z1AF06
 '></span><a href="https://us02web.zoom.us/j/11111111126704?pwd=hashhere"><span style='mso-bookmark:WinZmBookmark_z1AF06'>https:
 //us02web.zoom.us/j/11111111126704?pwd=hashhere</span
 ><span style='mso-bookmark:WinZmBookmark_z1AF06'></span></a><span style='m
 so-bookmark:WinZmBookmark_z1AF06'><o:p></o:p></span></p><p class=MsoNormal
 ><span style='mso-bookmark:WinZmBookmark_z1AF06'><o:p>&nbsp\;</o:p></span>
 </p><p class=MsoNormal><span style='mso-bookmark:WinZmBookmark_z1AF06'>Mee
 ting ID: 826 9352 6704<o:p></o:p></span></p><p class=MsoNormal><span style
 ='mso-bookmark:WinZmBookmark_z1AF06'>passcode: pass here<o:p></o:p></span></p
 ><p class=MsoNormal><span style='mso-bookmark:WinZmBookmark_z1AF06'>One ta
 p mobile<o:p></o:p></span></p><p class=MsoNormal><span style='mso-bookmark
 :WinZmBookmark_z1AF06'>+15873281099\,\,82693526704#\,\,\,\,*320691# Canada
 <o:p></o:p></span></p><p class=MsoNormal><span style='mso-bookmark:WinZmBo
 okmark_z1AF06'>+16473744685\,\,82693526704#\,\,\,\,*320691# Canada<o:p></o
 :p></span></p><p class=MsoNormal><span style='mso-bookmark:WinZmBookmark_z
 1AF06'><o:p>&nbsp\;</o:p></span></p><p class=MsoNormal><span style='mso-bo
 okmark:WinZmBookmark_z1AF06'>Dial by your location<o:p></o:p></span></p><p
  class=MsoNormal><span style='mso-bookmark:WinZmBookmark_z1AF06'>&nbsp\;&n
 bsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\; +1 587 328 1099 Canada<o:p></o:p>
 </span></p><p class=MsoNormal><span style='mso-bookmark:WinZmBookmark_z1AF
 06'>&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\; +1 647 374 4685 Cana
 da<o:p></o:p></span></p><p class=MsoNormal><span style='mso-bookmark:WinZm
 Bookmark_z1AF06'>&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\; +1 647
 558 0588 Canada<o:p></o:p></span></p><p class=MsoNormal><span style='mso-b
 ookmark:WinZmBookmark_z1AF06'>&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nbsp\;&n
 bsp\; +1 778 907 2071 Canada<o:p></o:p></span></p><p class=MsoNormal><span
  style='mso-bookmark:WinZmBookmark_z1AF06'>&nbsp\;&nbsp\;&nbsp\;&nbsp\;&nb
 sp\;&nbsp\;&nbsp\; +1 204 272 7920 Canada<o:p></o:p></span></p><p class=Ms
 oNormal><span style='mso-bookmark:WinZmBookmark_z1AF06'>&nbsp\;&nbsp\;&nbs
 p\;&nbsp\;&nbsp\;&nbsp\;&nbsp\; +1 438 809 7799 Canada<o:p></o:p></span></
 p><p class=MsoNormal><span style='mso-bookmark:WinZmBookmark_z1AF06'>Meeti
 ng ID: 826 9352 6704<o:p></o:p></span></p><p class=MsoNormal><span style='
 mso-bookmark:WinZmBookmark_z1AF06'>Passcode: 320691<o:p></o:p></span></p><
 p class=MsoNormal><span style='mso-bookmark:WinZmBookmark_z1AF06'>Find you
 r local number: </span><a href="https://us02web.zoom.us/u/kHIG8dR0U"><span
  style='mso-bookmark:WinZmBookmark_z1AF06'>https://us02web.zoom.us/u/kHIG8
 dR0U</span><span style='mso-bookmark:WinZmBookmark_z1AF06'></span></a><spa
 n style='mso-bookmark:WinZmBookmark_z1AF06'></span><a name=WinZmBookmarkEn
 d></a><o:p></o:p></p><p class=MsoNormal><o:p>&nbsp\;</o:p></p><p class=Mso
 Normal><o:p>&nbsp\;</o:p></p></div></body></html>
X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOSTARTCHECK:FALSE
X-MS-OLK-CONFTYPE:0
X-MS-OLK-SENDER;CN=sen...@sender.com:mailto:sen...@sender.com
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
```


Hubert Behaghel

unread,
Jun 28, 2021, 9:17:31 AM6/28/21
to mu-di...@googlegroups.com, Dirk-Jan C. Binnema, Matt Price
Hi Matt,

On Monday, 28 June 2021 at 13:34 BST, Matt Price wrote:

> For the record, here is an example VCS with some identifying info removed.

Could you forward one of these to me? I think the format below is already supported. I could help verify this.

> X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE

That's helpful. My main grief with our support for calendar invites is that if I respond (e.g. accept) directly from mu4e I still remain marked as tentative in Outlook. Always painful to have to fit all vendors specifics in our implementation but that attribute is likely to be the fix here.

Cheers,

--
Hubert
Reply all
Reply to author
Forward
0 new messages