日历服务器需要什么协议

What protocols are REQUIRED for calendar servers

我正在 .Net 中构建日历服务器。我希望系统的第一个版本对任何日历客户端都具有功能性和互操作性。该系统是为我的大学准备的,也是我的论文,这就是为什么我没有足够的时间来实现这些系统应该实现的所有协议。

日历系统服务器需要哪些协议才能对客户端起作用?到目前为止它实现了 RFC 5545 (iCalendar),我正在完成 RFC 4791 (CalDAV) 和 WebDAV 的一些扩展,之后我将实现 RFC 3744 (ACL)。

我应该实施 RFC 6638(CalDAV 的调度扩展)、RFC 3253(WebDAV 的版本控制扩展)还是其他任何标准?

将来我想实现所有这些协议,但我现在没有时间。

尽管“票数接近”,但我认为这是一个有效的问题。那里有很多标准,也有很多依赖项。而且您当然不需要所有东西。

事实是你只需要一个子集,几乎没有人实现整个规范。

您需要什么取决于您要支持哪些客户端和哪些功能。所以假设您想支持 iCal 和 Thunderbird。

那么至少您需要大量的 CalDAV (RFC4791)。您不需要 every REPORT,但至少需要 calendar-multiget 和 calendar-query。 freebusy 的东西没有被使用。但对于日历查询报告,只有一小部分客户进行的实际查询。

您需要 RFC3744 的大部分内容。您可以跳过大部分 REPORT,但您需要一个主体系统和访问控制相关的 WebDAV 属性。您也不需要 ACL 方法。 WebDAV ACL 主要用于主体和报告访问信息(但不改变它)。

没有人使用 RFC3253(版本控制)。

您可能需要 current-user-principal-URL (rfc5397).

不需要 需要安排 (RFC6638)。没有安排,客户端将同步正常。

最后,对 WebDAV 同步的支持真的很有用(rfc6578). Clients should be able to live without it, but in reality they tend to misbehave. Without support for that spec, you can fall back on the proprietary ctag,它得到了广泛的支持。它更简单,可以完成工作,但不是标准的。

不过,我认为这个答案并非详尽无遗。这是帮助您入门的概述。如果您对我提到的规格有更具体的问题,请在此处发表评论,我很乐意进一步扩展这个答案。