关于office365api:如何通过Office.js在撰写模式下判断用户打开的outlook预约项是发生、异常还是大师系列?

how to determine the opened outlook appointment item by user is an occurrence, exception or master series in compose mode through Office.js?

在通过 Office.js 在撰写模式下的日历重复事件(date)的上下文中,我需要为相应的date主系列项目设置自定义属性,无论用户打开的事件是发生、异常还是主系列。

我通过 office.js API 面临的问题是,我无法识别用户打开的date是事件、异常还是主系列。我怎样才能识别它?如果它是一个事件或异常,那么我如何通过 Office.js 从当前项目上下文将自定义属性添加到相应的主系列项目。


如前所述,遗憾的是 API 不提供此信息。但是,您可以使用 item->seriesId 属性至少将系列主控与实例区分开来。如果 id 存在,则您正在处理一个实例,否则是一个主实例。

请注意,Mac 版本中似乎存在一个错误,导致 seriesId 在那里不可用。看这里


Office.js 中没有用于确定date是主date、重复date还是异常date的 javascript api。但是,为了做到这一点,您可以使用 REST API:

GET https://outlook.office.com/api/v2.0/me/events/{event_id}

响应将包含一个 EventType (SeriesMaster,Occurence,Exception) 和系列主机 ID(如果是主机,则为 null)

您也可以使用 makeEwsRequestAsync() API 并发送 GetItem EWS 请求。

您将从请求中收到的响应将具有几个可以帮助您解决此问题的属性:

  • 是经常性的
  • 异常
  • RecurringMasterItemId

然后您可以使用 Recurring Master ItemId 通过额外的 REST API 调用或 EWS 调用添加自定义属性