如何从我的Web / app服务器创建Outlook日历订阅?

时间:2012-10-17 11:49:45

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

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

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

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

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

  

2.1.3.1.1.15属性:X-PUBLISHED-TTL

     

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

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

忽略

答案 2 :(得分:0)

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

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

github.com/EitanBlumin/sql-clr-ics