web-dev-qa-db-fra.com

Spécification du nom, de la description et de l'intervalle de rafraîchissement au format iCal (ics)

Je crée un calendrier d'abonnement iCal qui fonctionne comme prévu; sauf que je n'arrive pas à spécifier des éléments apparemment basiques tels qu'un nom par défaut à suggérer au client pour le calendrier, une description et la fréquence à laquelle il doit être actualisé.

J'ai trouvé cette révision des spécifications: http://tools.ietf.org/html/draft-daboo-icalendar-extensions-06

Cela suggère que je peux simplement passer dans les domaines que je veux. Cela fait et avec le haut du fichier ics ressemblant à ceci:

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

Je constate simplement que même si aucun appareil/application que j'ai essayé rejette le calendrier, ils ignorent tous les propriétés. J'ai utilisé Outlook 2010, un iPhone sur iOS 6 et Google Calendar. Outlook prétend respecter une sorte d'intervalle de rafraîchissement dans le fichier, mais lorsque je m'abonne à mon calendrier - il est dit qu'il n'est pas spécifié.

La question est donc de savoir si ces propriétés sont prises en charge, ou dois-je les spécifier comme autre chose pour chaque client différent, ou suis-je tout simplement pas de chance?

28
Codecraft

Il s'avère que la réponse se cachait bien en vue. Les propriétés ci-dessus sont un projet de proposition pour le moment et ne sont pas prises en charge par tout ce que j'ai essayé. C'est probablement un bon pari de les inclure dans votre calendrier pour l'avenir - mais pour que cela fonctionne maintenant aussi, faites-le comme ceci:

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

Les propriétés de travail réelles à l'heure actuelle étant:

X-WR-CALNAME
X-WR-CALDESC
X-WR-TIMEZONE
X-PUBLISHED-TTL
39
Codecraft

Pour ceux qui utilisent Rails gem 'iCalendar' avec la version 2.3.0. Vous trouverez ci-dessous la solution pour définir des propriétés personnalisées comme le nom du calendrier.

calendar = Icalendar::Calendar.new 
calendar.append_custom_property("X-WR-CALNAME","My Calendar")
9
Dave

Une autre option avec la gemme icalendar Ruby:

calendar = Icalendar::Calendar.new
calendar.x_wr_calname = 'Calendar Name'
2
Richard Jones