在单个ics文件中分组多个事件(icalendar流)

时间:2009-12-01 02:29:51

标签: icalendar

我想根据RFC将多个事件分组到单个ICS文件(iCalendar流)中。这可以做,但我不知道如何。任何人都可以帮助我或给我一个例子吗?

这是rfc所说的:

  

但是,可以按顺序对多个iCalendar对象进行分组   一起在iCalendar流中。第一行和最后一行   iCalendar对象必须包含一对iCalendar对象分隔符
  字符串。 iCalendar流的语法如下:

 icalstream = 1*icalobject

 icalobject = "BEGIN" ":" "VCALENDAR" CRLF
              icalbody
              "END" ":" "VCALENDAR" CRLF

1 个答案:

答案 0 :(得分:57)

这是一个带有两个事件的icalendar文件的简单示例。

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//bobbin v0.1//NONSGML iCal Writer//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
DTSTART:20100701T080000Z
DTEND:20100701T110000Z
DTSTAMP:20091130T213238Z
UID:1285935469767a7c7c1a9b3f0df8003a@yoursever.com
CREATED:20091130T213238Z
DESCRIPTION:Example event 1
LAST-MODIFIED:20091130T213238Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Example event 1
TRANSP:OPAQUE
END:VEVENT
BEGIN:VEVENT
DTSTART:20100701T120000Z
DTEND:20100701T130000Z
DTSTAMP:20091130T213238Z
UID:1285935469767a7c7c1a9b3f0df8003b@yoursever.com
CREATED:20091130T213238Z
DESCRIPTION:Example event 2
LAST-MODIFIED:20091130T213238Z
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:Example event 2
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR

将其复制到一个文件中并将其保存为events.ics,它应该在大多数icalendar兼容的应用程序中打开,例如Outlook 2007,Sunbird,iCal。对于更复杂的示例,您可以尝试在Google日历中创建活动并导出日历以查看结果或从icalshare.com等某个位置下载已有的日历。文件格式类似于电子邮件编码,因为它必须折叠。维基百科在ICalendar上有一篇非常好的文章,如果你使用Google“icalendar validator”,你可以使用多种服务来验证你的文件。哦,如果你对它感到沮丧,你并不孤单http://www.google.co.uk/support/forum/p/Calendar/thread?tid=366b19a87d1304ec&hl=en虽然它是一个很好的规范,它的实现非常,呃,不同。

有关如何使用它的详细信息可以帮助其他人帮助您。