Get calendar
Namespace: microsoft.graph
Get the properties and relationships of a calendar object. The calendar can be one for a user, or the default calendar of a Microsoft 365 group.
There are two scenarios where an app can get another user's calendar:
- If the app has application permissions, or,
- If the app has the appropriate delegated permissions from one user, and another user has shared a calendar with that user, or, has given delegated access to that user. See details and an example.
This API is available in the following national cloud deployments.
Global service | US Government L4 | US Government L5 (DOD) | China operated by 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Permissions
Depending on the type of calendar that the event is in and the permission type (delegated or application) requested, one of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.
Calendar | Delegated (work or school account) | Delegated (personal Microsoft account) | Application |
---|---|---|---|
user calendar | Calendars.ReadBasic, Calendars.Read, Calendars.ReadWrite | Calendars.ReadBasic, Calendars.Read, Calendars.ReadWrite | Calendars.ReadBasic, Calendars.Read, Calendars.ReadWrite |
group calendar | Group.Read.All, Group.ReadWrite.All | Not supported. | Not supported. |
HTTP request
A user's or group's default calendar.
GET /me/calendar
GET /users/{id | userPrincipalName}/calendar
GET /groups/{id}/calendar
A user's calendar in the default calendarGroup.
GET /me/calendars/{id}
GET /users/{id | userPrincipalName}/calendars/{id}
A user's calendar in a specific calendarGroup.
GET /me/calendarGroups/{id}/calendars/{id}
GET /users/{id | userPrincipalName}/calendarGroups/{id}/calendars/{id}
Optional query parameters
This method supports the OData Query Parameters to help customize the response.
Request headers
Name | Type | Description |
---|---|---|
Authorization | string | Bearer {token}. Required. Learn more about authentication and authorization. |
Request body
Don't supply a request body for this method.
Response
If successful, this method returns a 200 OK
response code and calendar object in the response body.
Example
Request
The following example gets the signed-in user's default calendar.
GET https://graph.microsoft.com/v1.0/me/calendar
Response
The following example shows the response. Note: The response object shown here might be shortened for readability.
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",
"isDefaultCalendar": false,
"changeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
"canShare":true,
"canViewPrivateItems":true,
"hexColor": "",
"canEdit":true,
"allowedOnlineMeetingProviders": [
"teamsForBusiness"
],
"defaultOnlineMeetingProvider": "teamsForBusiness",
"isTallyingResponses": true,
"isRemovable": false,
"owner":{
"name":"Samantha Booth",
"address":"samanthab@contoso.com"
}
}