Указание имени, описания и интервала обновления в формате iCal (ics)
Я создаю календарь подписки iCal, который работает как ожидалось; кроме как я не могу указать, по-видимому, основные вещи, такие как имя по умолчанию, предлагающее клиенту календарь, описание и частоту обновления.
Я нашел эту версию спецификации: http://tools.ietf.org/html/draft-daboo-icalendar-extensions-06
Это говорит о том, что я могу просто передать нужные поля. Сделав это и с вершиной файла ics, выглядя следующим образом:
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
Я просто нахожу, что ни одно устройство/приложение, которое я пробовал, не отклоняет календарь, они игнорируют свойства. Я использовал Outlook 2010, iPhone на iOS 6 и Google Calendar. Outlook утверждает, что соблюдает некоторый интервал обновления в файле, но когда я подписываюсь на свой календарь - он говорит, что он не указан.
Итак, вопрос в том, поддерживаются ли эти свойства или мне нужно указать их как что-то еще для каждого другого клиента, или мне просто не повезло?
Ответы
Ответ 1
Получается, что ответ скрывался на виду. На данный момент свойства выше являются проектным предложением и не подкреплены ничем, что я пробовал. Вероятно, это хорошая ставка, чтобы включить их в свой календарь на будущее, но для этого теперь нужно работать так:
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
Фактические рабочие свойства на данный момент:
X-WR-CALNAME
X-WR-CALDESC
X-WR-TIMEZONE
X-PUBLISHED-TTL
Ответ 2
Для тех, кто использует rails gem 'iCalendar' с версией 2.3.0. Ниже приведено решение для установки настраиваемых свойств, таких как имя календаря.
calendar = Icalendar::Calendar.new
calendar.append_custom_property("X-WR-CALNAME","My Calendar")
Ответ 3
Еще одна опция с icalendar
Ruby gem:
calendar = Icalendar::Calendar.new
calendar.x_wr_calname = 'Calendar Name'