什么是 Apple iCloud 默认日历?

What are Apple iCloud default calendars?

我正在使用 CalDav 访问 Apple iCloud 日历。目前我的帐户中有 4 个日历:Home、Work、Test cal 1、Test cal 2。前两个似乎是默认创建的,另外两个是测试日历。

然而,当我列出校长的日历时,我得到 8 个不同的日历:

/calendars/64E6F061-DE12-4D6F-B7D4-5DFDE53C800C/ 是我的测试校准 1

/calendars/A1FBED21-5ED1-4BEF-8C4F-88A0D425BB7A/ 是我的测试校准 2

/calendars/home/首页日历,相信这是主日历

/2003926771/calendars/work/ 工作日历

但我不确定这些其他日历的用途:

/calendars/inbox/

/calendars/notification/

/calendars/tasks/

/calendars/outbox/

可以尝试从他们的名字来猜测,但这会导致更多问题。 tasks,例如,可能意味着 VTODO 在此日历中进行管理,但这是否意味着 VTODO 未在任何其他日历中列出?

无论如何,主要问题是有人知道每个(默认?)iCloud 日历的用途吗?

首先:CalDAV 服务器可以包含任意 CalDAV collection,而不仅仅是日历。例如。服务器还包含用于文件存储的 CardDAV collections(又名地址簿)甚至 collections 的情况并不少见。您可以通过查看其 {DAV:}resourcetype 属性 来确定 WebDAV collection 的类型。对于 CalDAV 日历(包含实际 iCalendar objects 的 collection),它将是 {urn:ietf:params:xml:ns:caldav}calendar.

/calendars/tasks

tasks, as an example, could mean VTODOs are managed in this calendar

正确。 collection 将具有上面提到的 {urn:ietf:params:xml:ns:caldav}calendar 资源类型。 然后 collection 可以包含哪些类型的 iCalendar 实体由 {urn:item:params:xml:ns:caldav}supported-calendar-component-set 属性 决定,例如:

<supported-calendar-component-set xmlns="urn:ietf:params:xml:ns:caldav">
  <comp name="VTODO"/>
</supported-calendar-component-set>

...对于任务 collection.

在服务器上创建新的 collection 时,您使用相同的 属性 指定日历类型。

but would that mean VTODOs are not listed in any other calendar

CalDAV 在技术上支持两种样式,'hybrid' 可以包含待办事项和事件的日历,以及 single-type 日历。 'hybrid' 日历将在 supported-calendar-component-set 中包含多个 comp 元素。 iCloud 服务器可以做这两种风格。

首选哪种风格很大程度上取决于品味。在 Apple 世界中,single-type 日历是默认设置,部分原因是提醒和日历在 iOS 和 macOS 上是不同的应用程序。 (最初的 MacOSX iCal 应用程序是混合的)。此外,Outlook 仅真正支持 single-type 个日历。

长话短说:我建议将它们分开以避免发生奇怪的事情:-)

/calendars/outbox/

outbox 是支持调度的旧事物。客户端会将会议请求等放入此 collection,然后服务器会代表客户端将它们扇出。

iCloud 现在充当 auto-scheduling CalDAV 服务器。简而言之,这意味着如果您将包含与会者等的 VEVENT 放入 iCloud 日历中,它会自动与这些与会者进行 iTIP 交互。

总结:就skip/ignore这个。

/calendars/inbox/

这是 outbox 的对等体,但与 outbox 不同的是,inbox 仍在使用。当人们邀请您参加 meeting/event 时,inbox 将包含客户发送的会议请求。

对于 auto-scheduling CalDAV 服务器,这主要用作通知用户被邀请的一种方式,也就是说,它会在 iOS 的 'Inbox' 选项卡中弹出日历,或在 macOS 日历的通知弹出窗口中。 请注意,对于 auto-scheduling 服务器,服务器 也会 更新或创建用户日历中的匹配记录。也就是说,对于收件箱中的每个项目,您会在常规日历中找到另一个具有相同 UID 的项目(当然除非是取消)。

在支持收件箱的 non-autoscheduling 服务器中,客户端在技术上应该将 iTIP 项目从收件箱中取出并将其放入日历中。但我认为没有任何客户端仍然支持此操作,而且我不知道有收件箱但没有 auto-scheduling.

的服务器

摘要:此 collection 包含有关收件箱邀请的通知(如 iTIP objects)。

/calendars/notification/

这类似于收件箱,它是一个包含 non-iTIP 通知的 collection。它的主要用途是用于 CalDAV shared calendars。如果您受邀加入日历,此 collection 将包含邀请。