Specifying name, description and refresh interval in iCal (ics) format

icalendar

I'm creating a iCal subscription calendar which is all working as expected; except I can't seem to specify seemingly basic things such as a default name to suggest to the client for the calendar, a description, and how often it should refresh.

I did find this specification revision: https://datatracker.ietf.org/doc/html/draft-daboo-icalendar-extensions-06

It does suggest that I can simply pass in the fields I want. Having done this and with the top of the ics file looking like this:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//My Company//NONSGML Event Calendar//EN
URL:http://my.calendar/url
NAME:My Calendar Name
DESCRIPTION:A description of my calendar
TIMEZONE-ID:Europe/London
REFRESH-INTERVAL;VALUE=DURATION:P1D
COLOR:34:50:105
CALSCALE:GREGORIAN
METHOD:PUBLISH

I'm simply finding that whilst no device/app that I've tried rejects the calendar, they are all ignoring the properties. I've used Outlook 2010, an iPhone on iOS 6, and Google Calendar. Outlook claims to respect some sort of refresh interval in the file, but when I subscribe my calendar – it says it's unspecified.

So the question is are these properties supported, or do I need to specify them as something else for each different client, or am I just plain out of luck?

Best Solution

It turns out the answer was hiding in plain sight. The properties above are a draft proposal at the moment and unsupported by anything I tried. It's probably a good bet to include them in your calendar for the future - but for it to work now as well, do it like this:

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//My Company//NONSGML Event Calendar//EN
URL:http://my.calendar/url
NAME:My Calendar Name
X-WR-CALNAME:My Calendar Name
DESCRIPTION:A description of my calendar
X-WR-CALDESC:A description of my calendar
TIMEZONE-ID:Europe/London
X-WR-TIMEZONE:Europe/London
REFRESH-INTERVAL;VALUE=DURATION:PT12H
X-PUBLISHED-TTL:PT12H
COLOR:34:50:105
CALSCALE:GREGORIAN
METHOD:PUBLISH

The actual working properties at the moment being:

X-WR-CALNAME
X-WR-CALDESC
X-WR-TIMEZONE
X-PUBLISHED-TTL
Related Question