iOS 内置日历应用程序如何与各种日历源同步?

How the iOS built-in Calendar app sync with various calendar sources?

我正在尝试制作日历应用程序,例如日出和 iOS 日历应用程序。 iOS 日历应用如何与 Google、Exchange 和 iCloud 等各种日历源同步?他们使用什么协议?卡尔达夫?如果我要制作这样的应用程序?我应该怎么做才能使我的应用程序的日历事件与这些日历源同步?

iOS 日历使用 CalDAV 与 iCloud 同步,Google 日历使用 AFAIK EWS 与 Exchange 同步。所有的同步都是由一些 EventKit 守护进程 运行 在后台完成的。

您可以只使用 EventKit 来存储您的事件并免费获得所有同步,也可以自己实施协议。当前的 EventKit 有一些严重的限制,因此它可能不是实现功能齐全的日历的正确方法。

这是关于如何构建 CalDAV 客户端的精彩介绍:http://sabre.io/dav/building-a-caldav-client/