Calendar 为什么EWS管理的API SyncFolderItems不返回定期约会

Calendar 为什么EWS管理的API SyncFolderItems不返回定期约会,calendar,exchangewebservices,ews-managed-api,recurring-events,Calendar,Exchangewebservices,Ews Managed Api,Recurring Events,我正在使用EWS的托管API将计划应用程序与exchange日历同步。我可以参加所有正常的会议,但我没有得到任何重复/定期的约会 我的代码如下: itemChangeCollection = _service.SyncFolderItems( new FolderId(WellKnownFolderName.Calendar, new Mailbox(Emai

我正在使用EWS的托管API将计划应用程序与exchange日历同步。我可以参加所有正常的会议,但我没有得到任何重复/定期的约会

我的代码如下:

itemChangeCollection = _service.SyncFolderItems(
                            new FolderId(WellKnownFolderName.Calendar,
                                         new Mailbox(Email)),
                            propertySet,
                            null,
                            Settings.Default.ExchangeSyncFetchCount,
                            SyncFolderItemsScope.NormalItems,
                            syncState);

我需要更改什么才能同时查看定期约会?

定期约会的实例不是商店中的“真实”项目。它们是虚拟的,因为每当您使用日历视图和时间框架执行搜索时,都会计算它们


查找定期约会的唯一方法是使用FindItems方法。

SyncFolderItems
将为您提供定期主项目,但不会将其扩展为事件。定期主控形状保存所有项目的公共属性、定期模式以及异常和删除列表。这是将其展开为引用所需的所有信息。尽管您应该调用
Appointment.BindToOccurrence
,以根据事件索引绑定定期主机中单个事件的属性。缺点是,这会为每次事件调用EWS。

SyncFolderItems
仅返回重建重复序列所需的信息,但不会扩展单个事件。如果需要展开引用,则需要使用
FindItems
方法

但是,即使假设您可以自己扩展重复周期,
SyncFolderItems
本身也不能提供所有必要的信息


SyncFolderItems
将返回带有
Single
RecurringMaster
AppointmentType的事件列表。RecurringMaster事件包含
ModifiedOccurrences
DeletedOccurrences
属性。不幸的是,
ModifiedOccurrences
中的项只包含ItemId,而不包含项本身。似乎有必要单独解决所有异常,以获得修改的引用的字段。从:

ModifiedOccurrences集合中的每个OccurrenceInfo对象 包含四个属性:结束项目ID原始开始开始。到 访问异常项的其他属性,您必须绑定到 使用发生信息.ItemId创建项目

foreach(recurringMasterItem.ModifiedOccurrences中的发生信息项)
{
Appointment modifiedItem=Appointment.Bind(服务、项目、项目ID);
Console.WriteLine(“主题:+modifiedItem.Subject”);
}

换句话说,使用从
SyncFolderItem
获取的数据,您可以展开重复,包括时间异常和已删除的事件,但您必须使用其他
.Bind()解决其他字段(即摘要、正文、位置等)上的异常
呼叫。

实际上,我正在使用FindItem从具有开始和结束日期限制的房间日历中检索约会,但仍然没有接收定期会议。我刚刚意识到,即使使用FindItem,我也没有接收定期会议的原因是我使用了搜索过滤器(我想同时使用项目视图进行分页并指定日期间隔)。如果您想接收定期项目,则不能使用搜索筛选器(至少不能使用带有日期条件的筛选器)。Marco,您知道如何找到刚刚修改的ModifiedCurrences吗?(执行SyncFolderItems并加载ModifiedOccurrences属性后,它包含所有已修改的事件,而不仅仅是自上次同步以来已修改的事件)。谢谢!