With ICS Calendar, I’ve always taken a very pragmatic approach. I do what I can to make sure ICS Calendar adheres to the iCalendar specification, but I don’t bother supporting certain standard properties if I never see them used in actual feeds (e.g. the much-delayed and still minimally-supported CATEGORIES
property), and I also support certain proprietary properties, if they’re used commonly by one of the big calendar vendors.
The most widely used calendar applications, such as Google Calendar and Microsoft 365, themselves only adhere to the bare minimums of the spec, while introducing a number of their own custom properties via the extensible X-
prefix, which allows software vendors to add whatever they want to feeds, regardless of whether or not (and it’s generally not) any other calendar software knows what to do with it.
You see, while there are certain basic elements of the iCalendar spec that have to be included in a feed for calendar applications to recognize it as a feed and import the data, these companies are also trying to differentiate their offerings. It’s much like the early days of web browsers, before standards really gained traction, when Netscape Navigator and Microsoft Internet Explorer were both adding exclusive features to try to increase their market share.
Sadly, the iCalendar spec seems to be suffering a worse fate than HTML and CSS, because it gets a lot less attention. There’s not a critical mass of standards-minded developers forcing the issue.
So, whereas the current spec supports adding teleconferencing details to events, via the clearly defined CONFERENCE
property, neither Google nor Microsoft uses that property in their feeds. Instead, Google pointlessly uses its own X-GOOGLE-CONFERENCE
property instead.
And, in typical Microsoft fashion, the situation on their side is overly complicated, with this list of properties clogging up events that are created in Outlook with Teams meeting details:
X-MICROSOFT-ONLINEMEETINGINFORMATION
X-MICROSOFT-SKYPETEAMSPROPERTIES
X-MICROSOFT-ONLINEMEETINGTOLLNUMBER
X-MICROSOFT-ONLINEMEETINGCONFERENCEID
X-MICROSOFT-SKYPETEAMSMEETINGURL
Those are just five out of 19 properties I found in a typical event record with X-MICROSOFT-
prefixes.
Where this truly devolves into absurdity is that the contents of these properties are usually irrelevant. Both Google and Microsoft duplicate the conference-related details directly in the event descriptions, since that’s necessary for viewing these events in the competition’s calendar software: Google Calendar doesn’t show X-MICROSOFT-
fields, Outlook doesn’t show X-GOOGLE-
fields, and Apple’s Calendar app doesn’t show either!
If these providers would just use the standard rather than inventing their own, mutually incompatible properties, all calendars would work together better. Of course, there’s no money in that.
Now, all of this might just come off as a rant — and honestly, it is — but it’s also my way of declaring that adding support for the CONFERENCE
property, along with some of the more commonly used, proprietary variants, is coming in a future update to ICS Calendar and ICS Calendar Pro.
—Scott