是否有任何官方资源用于编程 Outlook“互联网日历订阅”,在链接中描述为
Internet 日历订阅是您在 Outlook 中下载和查看的日历。但是,与日历快照不同的是,Internet 日历订阅会自动更新。
我正在使用 ASP.NET MVC 和DDay.iCal 库。我一直没有成功创建这样一个日历。我需要具体问题的答案。我厌倦了猜测。而且我不会接受随机代码、过时的 codeproject 文章的链接或任何其他非权威的内容。
我拥有的唯一具体信息是 URL 必须
- 首先
webcal://
- 以
.ics
文件名结尾
我必须为每个用户生成一个唯一且最新的日历,最好是每次 Outlook 轮询地址时。我想避免将日历更新挂接到网站的 CRUD 部分。所以,我需要知道一些关于 Outlook 接受什么的细节。
我可以使用返回
FileResult
(或派生:流、内容、路径)的控制器/操作在 Outlook 命中地址时动态生成日历吗?我可以通过装饰动作来“伪造” URL 的 ICS 文件/文件名部分,例如
[ActionName("iCalFeed.ics")]
?我可以使用 an
ActionLink
创建webcal
操作的链接,例如<%= Html.ActionLink("Connect to Outlook", "iCalFeed.ics", "Schedule", "webcal", null, null, null, null) %>
?
我以特别的方式尝试了其中一些东西,Outlook 喜欢弹出和处理webcal
链接,但它什么也不显示,也不显示错误消息。是否有地方可以挖掘 Outlook Web 日历导入错误?
如果对上述问题不满意,是否有另一种方法可以在 Outlook 每次轮询地址时提供新鲜内容?我宁愿不更新日历与站点上的 CRUD 操作同步。这似乎比必要的复杂。
无论哪种方式,我还需要知道 iCalendar 规范 Outlook 需要正确更新“订阅”的哪些部分。我将一个有效的ICS 文件作为常规“快照”导入,其中只有开始/结束日期、摘要和位置。但是,显然,规范中有一些棘手的部分,比如
我必须设置
METHOD
(RFC2445 4.7.2 方法)吗?我什至找不到对这个属性或它接受的值的体面描述(它是特定于客户的吗?)。我是否必须跟踪事件 UID 并根据系统的 CRUD 操作更改它们的处置?或者在随后的轮询中添加/删除/更新日历中的事件是否足以让 Outlook 弄清楚?如果我必须跟踪,现在我必须为我的应用程序添加一整层持久性和状态感知。
如果我在跟踪,我在其他 SO 问题中注意到 Outlook 对
ORGANIZER
属性真的很挑剔......它是否必须是电子邮件地址?一个mailto:
链接还是一个地址?
我已经走到尽头了。如果它回答了有关实际构建生成适当日历订阅的网站的问题,我愿意阅读文档。除了这个奇怪的转换“算法”,我在 MSDN 上没有找到任何东西。而且,据我所知,它没有用。
需要明确的是,我可以为任何用户生成一个基本的 ICS 文件并在 Outlook 中手动启动它。我根本无法让我的任何 webcal 链接正常工作。
这些其他日历 RFC 是否发挥作用:[iTIP](https://www.rfc-editor.org/rfc/rfc2446) 和 [iMIP](https://www.rfc-editor.org/rfc/rfc2447) ?