一个ics文件中的多个日历

时间:2016-08-02 21:31:24

标签: icalendar

我有一个网站,其资源数据可以导出为日历(.ics文件)。它是一个内部网站,因此用户可能会将它们加载到Outlook 2013中,以便他们可以使用自己的日历交叉引用资源数据。

我遇到了一个挑战,即用户可以一次性轻松导出多组数据,从而可以下载多个日历(常见的最糟糕的情况是12个日历,但是会有一些用户会把它推得远远超过那个)。我可以轻松地将ics文件压缩并提供zip作为单个下载,但我的目标是使其尽可能简单易用,以便用户导入Outlook。根据我所做的研究和我自己的测试,我没有找到任何方法让.ics在一个文件中有多个日历。因此,这是我的问题链:

  • icalendar是否有办法在一个文件中存储多个日历?
  • 如果没有,Outlook 2013可以导入和解析支持多个日历的其他日历文件格式吗?
  • 如果没有更好的日历文件类型,是否有提供多个日历文件以供下载和导入的一般最佳做法?

3 个答案:

答案 0 :(得分:2)

当你说“日历”时,我不确定你的意思,但是,为了扩展@jgm的答案,规范允许在同一个文件中存在多个VCALENDAR组件。

BEGIN:VCALENDAR
...
END:VCALENDAR
BEGIN:VCALENDAR
...
END:VCALENDAR

答案 1 :(得分:0)

根据the specification,您可以在一个iCalendar条目中拥有多个日历:

The Calendaring and Scheduling Core Object is a collection of
calendaring and scheduling information.  Typically, this information
will consist of an iCalendar stream with a single iCalendar object.
However, multiple iCalendar objects can be sequentially grouped
together in an iCalendar stream.

但是,您必须单独测试每个客户端以查看它是否受支持,因为这不是常见情况。

答案 2 :(得分:-1)

没有。 iCalendar格式没有日历“容器”的概念。最接近的是使用CATEGORY属性来区分不同类型的事件。

如果您真的只关心Outlook,那么替代方法是创建PST文件,其中可以包含任意层次结构。但在发展方面更多地涉及产生这些。