34

我正在创建一个 iCal 订阅日历,它都按预期工作;除了我似乎无法指定看似基本的东西,例如向客户端建议的日历的默认名称、描述以及刷新频率。

我确实找到了这个规范修订:https ://datatracker.ietf.org/doc/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 声称尊重文件中的某种刷新间隔,但是当我订阅我的日历时 - 它说它未指定。

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

4

3 回答 3

49

事实证明,答案就在眼前。上面的属性目前是一个草案提案,我尝试过的任何东西都没有支持。将它们包含在您未来的日历中可能是一个不错的选择 - 但要让它现在也能正常工作,请这样做:

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
于 2013-06-19T09:12:16.650 回答
12

对于那些使用2.3.0 版的 rails gem 'iCalendar'的人。以下是设置自定义属性(如日历名称)的解决方案。

calendar = Icalendar::Calendar.new 
calendar.append_custom_property("X-WR-CALNAME","My Calendar")
于 2016-06-01T13:13:18.523 回答
3

icalendarRuby gem的另一个选项:

calendar = Icalendar::Calendar.new
calendar.x_wr_calname = 'Calendar Name'
于 2017-06-09T05:13:57.860 回答