以iCal(ic)格式指定名称,描述和刷新间隔

时间:2013-06-17 16:21:02

标签: icalendar

我正在创建一个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,iOS 6上的iPhone和Google日历。 Outlook声称尊重文件中的某种刷新间隔,但是当我订阅我的日历时 - 它说它没有指定。

所以问题是这些属性是否受支持,或者我是否需要为每个不同的客户端指定它们,或者我只是运气不好?

3 个答案:

答案 0 :(得分:38)

事实证明,答案隐藏在明显的视野中。上面的属性是目前的提案草案,并且没有我尝试的任何内容支持。将它们包含在您的日历中以供将来使用可能是一个不错的选择 - 但现在也可以这样做,这样做:

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

答案 1 :(得分:9)

对于使用版本2.3.0的 rails gem' iCalendar' 的用户。以下是设置日历名称等自定义属性的解决方案。

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

答案 2 :(得分:2)

使用icalendar Ruby gem的另一个选项:

calendar = Icalendar::Calendar.new
calendar.x_wr_calname = 'Calendar Name'