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

Cod*_*aft 28 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
Run Code Online (Sandbox Code Playgroud)

我只是发现虽然我没有试过的设备/应用程序拒绝日历,但他们都忽略了这些属性.我使用的是Outlook 2010,iOS 6上的iPhone和Google日历.Outlook声称尊重文件中的某种刷新间隔,但是当我订阅我的日历时 - 它表示它未指定.

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

Cod*_*aft 41

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

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
Run Code Online (Sandbox Code Playgroud)

目前的实际工作属性是:

X-WR-CALNAME
X-WR-CALDESC
X-WR-TIMEZONE
X-PUBLISHED-TTL
Run Code Online (Sandbox Code Playgroud)

  • 有谁知道如何为Google日历指定日历名称? (3认同)

Dav*_*ave 9

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

calendar = Icalendar::Calendar.new 
calendar.append_custom_property("X-WR-CALNAME","My Calendar")
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢你分享这个!我一直试图追踪这一点.+1 (2认同)
  • `calendar.append_custom_property("REFRESH-INTERVAL;VALUE=DURATION","P1H")` REFRESH-INTERVAL 属性每小时刷新一次 (2认同)