如何使用具有正确序列号的ICS更新Outlook AppointmentItem?即如何确定序号?

时间:2018-09-27 04:09:44

标签: outlook vsto outlook-addin icalendar

我开发了一个处理会议数据的Web应用程序。现在,我另外开发了一个VSTO Outlook插件,以便可以将Web应用程序上的会议数据链接添加到Outlook中的给定AppointmentItem。为此,我通过发送UID(GlobalAppointmentID)对Web应用程序使用API​​调用。但是当调用Web应用程序的API的“添加方法”时,我无法找到如何发送当前序列号的方法。

因此,我们最终得到2个处理约会的应用程序,其中之一是Outlook。

如果Web应用程序希望将会议更新发送到Outlook,它将使用ICS文件。问题是我无法从Web应用程序向Outlook发送约会的更新,因为我不知道在ICS文件中使用哪个序列号。

我在AppointmehtItem中找不到任何可让我在Outlook中找到当前序列号的属性。另外,我发现使用DTSTAMP代替SEQUENCE不能解决问题,因为仅允许使用DTSTAMP进行的更新不会更改约会的日期/时间。

所以我的问题是: 如何找到AppointmentItem的正确序列号,以便外部应用程序可以使用它来使用ICS文件发送更新

我的问题是Outlook发送邀请时可能会发送此序列号。就我而言,我的Web应用程序没有被邀请,因此它没有从Outlook发送的邀请邮件中接收序列号。

我认为我试图以完全错误的方式解决问题。任何帮助都非常感谢!

2 个答案:

答案 0 :(得分:0)

您需要在具有右RECURRENCE-ID头的同一ICS文件中发送例外的主约会。尝试通过Outlook UI将定期约会另存为ICS文件,然后在记事本中打开它。

答案 1 :(得分:0)

经过一些研究,我认为Outlook插件的整个概念是错误的。

据我了解,使用ICS文件是为了使邮件客户端可以就事件进行通信。

因此,对我的问题的一种可能的解决方案可能是Web应用程序充当邮件客户端从Outlook接收邀请的角色。只要约会的每个更改都包含在其自己的mailadress(info@mywebapplication.com)中,并且约会都将从Outlook发布到Web应用程序,并且Web应用程序需要解析传入的请求,对其进行解析并尝试找出哪个会议需要更新。

这可以解决吗?是否有人在处理Outlook,Google日历等的入站会议请求/更新/取消方面有经验? Outlook / Google是否为此使用ICS?可能是的,因为邮件客户端无法知道接收方使用哪个邮件客户端,可以吗?