List events

Namespace: microsoft.graph

Retrieve a list of events in a calendar. The calendar can be one for a user, or the default calendar of a Microsoft 365 group. The list of events contains single instance meetings and series masters.

To get expanded event instances, you can get the calendar view, or get the instances of an event.


Depending on the type of calendar that the events are 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.Read, Calendars.ReadWrite Calendars.Read, Calendars.ReadWrite 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/events
GET /users/{id | userPrincipalName}/calendar/events
GET /groups/{id}/calendar/events

A user's calendar in the default calendarGroup.

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

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

A user's calendar in a specific calendarGroup.

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

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.
Prefer: outlook.timezone string Use this to specify the time zone for start and end times in the response. If not specified, those time values are returned in UTC. Optional.

Request body

Do not supply a request body for this method.


If successful, this method returns a 200 OK response code and collection of Event objects in the response body.



Here is an example of the request.


Here is an example of the response. Note: The response object shown here may be truncated for brevity. All of the properties will be returned from an actual call.

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

  "value": [
      "originalStartTimeZone": "originalStartTimeZone-value",
      "originalEndTimeZone": "originalEndTimeZone-value",
      "responseStatus": {
        "response": "",
        "time": "datetime-value"
      "iCalUId": "iCalUId-value",
      "reminderMinutesBeforeStart": 99,
      "isReminderOn": true