C#Microsoft Graph API获取特定的日历

时间:2020-02-12 22:39:16

标签: c# microsoft-graph-api microsoft-graph-calendar

我正在Visual Studio 2019 v1.20.0 C#项目中使用新的Microsoft Graph Core API v16.4.5。 我想分别获取每个office365日历的所有日历条目(Event s。

到目前为止,我知道我可以使用await graphClient.Me.Calendars.Request().GetAsync();检索所有日历,并可以使用

检索事件
string startDate = DateTime.Now.AddMonths(-1).ToString("s");
string endDate = DateTime.Now.AddYears(1).ToString("s");
var queryOptions = new List<QueryOption>()
{
    new QueryOption("startDateTime", startDate),
    new QueryOption("endDateTime", endDate),
};

var resultPage = await graphClient.Me.Events.Request(queryOptions)
    .OrderBy("createdDateTime DESC")
    .GetAsync();

但是我不知道如何遍历所有日历并获取每个日历的所有事件。

1 个答案:

答案 0 :(得分:1)

Me.Events只会从用户的主日历中返回事件。

您需要首先使用Me.Calendars,如此处https://docs.microsoft.com/en-us/graph/api/user-list-calendars?view=graph-rest-1.0&tabs=http

所述
var calendars = await graphClient.Me.Calendars
    .Request()
    .GetAsync();

,对于每个日历ID,您都会返回呼叫列表事件https://docs.microsoft.com/en-us/graph/api/user-list-events?view=graph-rest-1.0&tabs=http

GET /me/calendars/{id}/events

在SDK中为

graphClient.Me.Calendars["calendar-id"].Events..Request()
        .GetAsync();