【问题标题】:Does value of ICalRecurrenceId ever change for each instance of recurring meetingIcalRecurrenceId 的值是否会针对每个定期会议实例发生变化
【发布时间】:2016-12-14 14:46:09
【问题描述】:

我想将多个用户的所有会议导入数据库。我正在使用 EWS 托管 API 和 C#

当我从每个邮箱导入会议时,如果每个用户都被邀请参加该会议,我可能会多次遇到同一个会议。

对于单实例会议,我可以使用 ICalUid 的值来获取会议的唯一 ID,因此我只能存储它的一个实例。

但是,对于定期会议,尚不清楚我应该使用哪个附加字段(以及 ICalUid)来标识定期会议系列的每个实例。

我可以可靠地使用ICalRecurrenceId 吗?这个值会改变吗?会议实例从多个邮箱导入时是否一致? 是否有更好的领域可以/应该使用来满足我的需求?

注意 - 我已经研究过使用 ItemId 字段,但是当从不同邮箱返回同一个会议时,这会返回不同的值。无论从哪个邮箱导入会议实例,我都需要能够识别它。

【问题讨论】:

    标签: c# exchange-server exchangewebservices ews-managed-api


    【解决方案1】:

    这个问题已经存在多年了,但我希望这个答案能为有需要的人提供一些信息。

    • ICalUid: 是会议的 UID,不会跨日历更改。
    • ICalRecurrenceId: 是每次重复会议的原始开始时间。
    • 重复会议的所有事件都将具有相同的ICalUid,但ICalRecurrenceId 将不同。
    • 在修改事件的开始时间时,ICalUidICalRecurrenceId 不会更改。
    • 修改定期会议的开始时间时,ICalUid 将被保留,但 ICalRecurrenceId 将针对所有事件进行更改

    所以要解决你的问题,这两个值的组合就足够了。

    【讨论】:

      【解决方案2】:

      我没有尝试使用 ICalRecurrenceId,但 ICalUID + Start (DateTime) 应该允许正确识别。

      【讨论】:

      • 但是,如果周期性会议系列的特定实例被更新并移动到不同的时间,ICalUID + Start (DateTime) 将指向新的更新时间还是原始实例时间?我需要能够正确识别每个实例,以便我知道更新数据库中的实例而不插入新记录
      • 是的,那会是个问题。
      • 根据我的实验,ICalRecurrenceId 不会改变,即使发生的开始日期时间发生了变化。这是发生的原始开始时间。因此,ICalUidICalRecurrenceId 组合可用于识别不同邮箱中的单个事件。 (韩的回答似乎是正确的。)
      猜你喜欢
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 2016-12-14
      • 1970-01-01
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      相关资源
      最近更新 更多