3

在 Office 365 API 中,我没有找到任何单一服务可以在一次调用中返回用户日历中的所有事件。如果用户有 3 个日历,则需要通过传递日历 ID 进行三个调用。

首先需要通过调用获取日历 ID

https://outlook.office.com/api/v1.0/me/calendars

然后对于每个 Calendar Id,需要通过调用来获取事件

GET https://outlook.office.com/api/{version}/me/calendars/{calendar_id}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}

如果有任何单个呼叫,那么它将减少往返行程。

谢谢你的帮助。

4

2 回答 2

1

不,没有一个单一的调用来获得所有日历的“合并”视图。这是一个有趣的想法,我认为您应该将其发布在UserVoice上。

于 2015-08-26T21:05:33.060 回答
1

确实,我们不能一次点击多个日历,但是我们可以使用并行 foreach 进行同时调用以获得更快的响应。

Task[] CalendarListEvents = new Task[CalendarList.Count];
Parallel.ForEach(CalendarList, (Calendar) =>
{ 
    tasksToFetchDailyEvents[index] = Task.Factory.StartNew(() =>
    {               
              // Code to fetch Events and add to list
    });

});
Task.WaitAll(CalendarListEvents);
于 2015-09-16T07:40:05.897 回答