【问题标题】:How do I create an Outlook calendar subscription from my web/app server?如何从我的 Web/应用服务器创建 Outlook 日历订阅?
【发布时间】:2012-10-07 16:06:32
【问题描述】:

我有一个网站,它是一个包含所有基本功能(ASP.NET MVC 和 SQL Server)的日历。人们可以输入事件、查看其他事件等。有人问我是否有一种方法可以在他们的 Outlook 日历中查看这些事件 - 作为第二个日历。

我拥有服务器上的所有数据。是否有推荐的方法让 Outlook 指向我的 Web 服务器或数据库以获取日历?我看到有办法从 C# 中generate iCal files

如果是这样,这些数据如何在创建、删除新事件等时保持同步?一次性转储是可以的,但担心数据会变得陈旧。是否有一种解决方案可以保持参考动态以使它们保持同步。 (它只需要单向传输,我不希望从 Outlook 中创建或删除,所以 Outlook 只是只读的)

【问题讨论】:

    标签: sql-server asp.net-mvc calendar outlook icalendar


    【解决方案1】:

    我认为您可以创建iCalendar 文件,然后创建publish 它,因此让客户订阅您的互联网日历,因为互联网日历订阅会定期与保存在网络服务器上的日历同步,以及互联网的任何更新日历会自动下载到 MS Outlook 中。

    您可以使用 DDay.Ical 库来使用 C# 创建 (.ics) 文件。

    【讨论】:

      【解决方案2】:

      假设您的问题是关于如何保持客户端和服务器端同步,并且由于您只提到 Outlook 作为客户端,因此有一种自定义方法来控制更新频率:微软有一个自定义日历属性:X-PUBLISHED-TTL (见microsoft msdn calendar

      2.1.3.1.1.15 属性:X-PUBLISHED-TTL

      简要说明:为具有同步功能的客户端和服务器指定建议的 iCalendar 文件下载频率。

      但请注意,此自定义属性将被其他日历忽略

      【讨论】:

        【解决方案3】:

        您可以尝试跟踪数据库中每个日历条目的更新序列,并在您的日历事件表中添加一个触发器,以便在发生变化时自动发送事件更新。每个更新都将具有比之前的更新更高的 SEQUENCE 属性,但 UID(事件的唯一标识符)将保持不变。

        不过,要使其工作,您需要能够从 SQL Server 中发送 iCalendar 事件,这可以使用以下 CLR 项目来实现:

        github.com/EitanBlumin/sql-clr-ics

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-01-14
          • 1970-01-01
          • 2016-02-07
          • 1970-01-01
          • 1970-01-01
          • 2019-02-12
          相关资源
          最近更新 更多