Get calendar

获取 calendar 对象的属性和关系。 可以是用户的日历,也可以是 Office 365 的默认日历。

获取其他用户的日历

如果你具有应用程序权限,或者具有某个用户的适当的委派权限,则可以获取其他用户的日历。 本部分重点介绍涉及委派权限的应用场景。

例如,你的应用已从用户 John 获得委派权限。 假设另一位用户 Garth 与 John 共享了一个日历。 可以通过在下面所示的查询示例中指定 Garth 的用户 ID(或者用户主体名称)来获取该共享日历。

GET /users/{Garth-id | Garth-userPrincipalName}/calendar

此功能适用于对单个用户执行的所有支持的 GET 日历操作,如下面的 HTTP 请求部分所示。 如果 Garth 将他的整个邮箱委派给 John,此功能同样适用。

如果 Garth 未与 John 共享他的日历,也未将他的邮箱委派给 John,那么在这些 GET 操作中指定 Garth 的用户 ID 或用户主体名称将返回错误。 在这种情况下,指定用户 ID 或用户主体名称只适用于获取已登录用户的日历,而此查询等效于使用 /me 快捷方式:

GET /me/calendar

此功能仅适用于以下资源的 GET 操作:

  • 共享联系人文件夹、日历和邮件文件夹
  • 共享文件夹中的联系人、事件和邮件
  • 委派邮箱中的上述资源

此功能不适用于针对联系人、事件、邮件及其文件夹的其他操作。

权限

要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限

权限类型 权限(从最低特权到最高特权)
委派(工作或学校帐户) Calendars.Read
委派(个人 Microsoft 帐户) Calendars.Read
应用程序 Calendars.Read

HTTP 请求

用户或组的默认 日历

GET /me/calendar
GET /users/{id | userPrincipalName}/calendar
GET /groups/{id}/calendar

默认 calendarGroup 中用户的 日历

GET /me/calendars/{id}
GET /users/{id | userPrincipalName}/calendars/{id}

GET /me/calendarGroup/calendars/{id}
GET /users/{id | userPrincipalName}/calendarGroup/calendars/{id}

指定 calendarGroup 中用户的 日历

GET /me/calendarGroups/{id}/calendars/{id}
GET /users/{id | userPrincipalName}/calendarGroups/{id}/calendars/{id}

可选的查询参数

此方法支持 OData 查询参数 来帮助自定义响应。

请求标头

名称 类型 说明
Authorization string Bearer {token}。必需。

请求正文

请勿提供此方法的请求正文。

响应

如果成功,此方法在响应正文中返回 200 OK 响应代码和 calendar 对象。

示例

请求

下面是一个请求示例。

GET https://graph.microsoft.com/v1.0/me/calendar
响应

下面是一个响应示例。注意:为了简单起见,可能会将此处所示的响应对象截断。将从实际调用中返回所有属性。

HTTP/1.1 200 OK
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#me/calendars/$entity",
    "@odata.id": "https://graph.microsoft.com/v1.0/users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/calendars('AAMkAGI2TGuLAAA=')",
    "id": "AAMkAGI2TGuLAAA=",
    "name": "Calendar",
    "color": "auto",
    "changeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
    "canShare":true,
    "canViewPrivateItems":true,
    "canEdit":true,
    "owner":{
        "name":"Samantha Booth",
        "address":"samanthab@adatum.onmicrosoft.com"
    }
}