Перечисление событий

Пространство имен: microsoft.graph

Важно!

API версии /beta в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.

Получение списка объектов event из стандартного календаря пользователя или указанного календаря. В этом списке указаны единичные собрания и главные собрания в соответствующих рядах.

Чтобы получить расширенные экземпляры события, вы можете получить представление календаря или экземпляры события.

Существует два сценария, в которых приложение может получить события из календаря другого пользователя:

  • если у приложения есть разрешения для приложений;
  • если у приложения есть соответствующие делегированные разрешения от одного пользователя, а другой пользователь поделился с ним календарем или предоставил ему делегированный доступ. См. подробные сведения и пример.

Этот API доступен в следующих национальных облачных развертываниях.

Глобальная служба Правительство США L4 Правительство США L5 (DOD) Китай управляется 21Vianet

Поддержка разных часовых поясов

Для всех операций GET, которые возвращают события, можно использовать заголовок Prefer: outlook.timezone, чтобы задать часовой пояс для указанного в отклике времени начала и завершения события.

Например, заголовок Prefer: outlook.timezone задает в отклике время начала и завершения согласно североамериканскому восточному времени.

Prefer: outlook.timezone="Eastern Standard Time"

Если событие создано с применением другого часового пояса, время начала и завершения будет изменено в соответствии с часовым поясом, указанным в заголовке Prefer. Поддерживаемые часовые пояса указаны в этом списке. Если заголовок Prefer: outlook.timezone не указан, время начала и завершения возвращается в формате UTC.

Узнать, какой именно часовой пояс использовался при создании события, позволят свойства OriginalStartTimeZone и OriginalEndTimeZone ресурса event.

Разрешения

Для вызова этого API требуется одно из следующих разрешений. Дополнительные сведения, включая сведения о том, как выбрать разрешения, см. в статье Разрешения.

Тип разрешения Разрешения (в порядке повышения привилегий)
Делегированные (рабочая или учебная учетная запись) Calendars.ReadBasic, Calendars.Read, Calendars.ReadWrite
Делегированные (личная учетная запись Майкрософт) Calendars.ReadBasic, Calendars.Read, Calendars.ReadWrite
Приложение Calendars.ReadBasic, Calendars.Read, Calendars.ReadWrite

HTTP-запрос

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

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

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

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

Необязательные параметры запросов

Этот метод поддерживает параметры запросов OData для настройки ответа.

Заголовки запросов

Имя Тип Описание
Authorization string Bearer {token}. Обязательно.
Prefer: outlook.timezone string С помощью этого заголовка вы можете задать часовой пояс для времени начала и окончания в ответе. Если он не задан, эти значения времени возвращаются в формате UTC. Необязательное свойство.
Prefer: outlook.body-content-type string Формат возвращаемого свойства body. Возможные значения: "text" или "html". Заголовок Preference-Applied возвращается как подтверждение, если заголовок Prefer указан. Если заголовок не указан, свойство body возвращается в формате HTML. Необязательное свойство.

Текст запроса

Не указывайте текст запроса для этого метода.

Отклик

В случае успеха этот метод возвращает код отклика 200 OK и коллекцию объектов event в теле отклика.

Пример

Запрос 1

В первом примере возвращаются все события пользователя. В нем указывается:

  • Заголовок Prefer: outlook.timezone для получения значений даты и времени, которые возвращаются для стандартного тихоокеанского времени.
  • Параметр $select запроса для возврата определенных свойств. Без параметра $select будут возвращены все свойства событий.

В запросе не определен никакой заголовок Prefer: outlook.body-content-type, чтобы указать конкретный формат для текста возвращаемого события.

GET https://graph.microsoft.com/beta/me/events?$select=subject,body,bodyPreview,organizer,attendees,start,end,location
Prefer: outlook.timezone="Pacific Standard Time"
Отклик 1

Ниже показан пример отклика. Так как заголовок Prefer: outlook.body-content-type не указан, свойство body возвращается в формате HTML по умолчанию.

HTTP/1.1 200 OK
Content-type: application/json
Preference-Applied: outlook.timezone="Pacific Standard Time"

{
    "@odata.context":"https://graph.microsoft.com/beta/$metadata#users('cd209b0b-3f83-4c35-82d2-d88a61820480')/events(subject,body,bodyPreview,organizer,attendees,start,end,location)",
    "value":[
        {
            "@odata.etag":"W/\"ZlnW4RIAV06KYYwlrfNZvQAAKGWwbw==\"",
            "id":"AAMkAGIAAAoZDOFAAA=",
            "subject":"Orientation ",
            "bodyPreview":"Dana, this is the time you selected for our orientation. Please bring the notes I sent you.",
            "body":{
                "contentType":"html",
                "content":"<html><head></head><body><p>Dana, this is the time you selected for our orientation. Please bring the notes I sent you.</p></body></html>"
            },
            "start":{
                "dateTime":"2017-04-21T10:00:00.0000000",
                "timeZone":"Pacific Standard Time"
            },
            "end":{
                "dateTime":"2017-04-21T12:00:00.0000000",
                "timeZone":"Pacific Standard Time"
            },
            "location": {
                "displayName": "Assembly Hall",
                "locationType": "default",
                "uniqueId": "Assembly Hall",
                "uniqueIdType": "private"
            },
            "locations": [
                {
                    "displayName": "Assembly Hall",
                    "locationType": "default",
                    "uniqueIdType": "unknown"
                }
            ],
            "attendees":[
                {
                    "type":"required",
                    "status":{
                        "response":"none",
                        "time":"0001-01-01T00:00:00Z"
                    },
                    "emailAddress":{
                        "name":"Samantha Booth",
                        "address":"samanthab@contoso.com"
                    }
                },
                {
                    "type":"required",
                    "status":{
                        "response":"none",
                        "time":"0001-01-01T00:00:00Z"
                    },
                    "emailAddress":{
                        "name":"Dana Swope",
                        "address":"danas@contoso.com"
                    }
                }
            ],
            "organizer":{
                "emailAddress":{
                    "name":"Samantha Booth",
                    "address":"samanthab@contoso.com"
                }
            }
        }
    ]
}
Запрос 2

Во втором примере показано, как использовать заголовок Prefer: outlook.body-content-type="text", чтобы получить свойство body указанного сообщения в текстовом формате.

В запросе также используется параметр $select для возврата отдельных свойств. Без параметра $select будут возвращены все свойства событий.

GET https://graph.microsoft.com/beta/me/events?$select=subject,body,bodyPreview
Prefer: outlook.body-content-type="text"
Отклик 2

Ниже показан пример отклика. Свойство body возвращается в текстовом формате.

HTTP/1.1 200 OK
Content-type: application/json
Preference-Applied: outlook.body-content-type="text"

{
    "@odata.context":"https://graph.microsoft.com/beta/$metadata#users('cd209b0b-3f83-4c35-82d2-d88a61820480')/events(subject,body,bodyPreview)",
    "value":[
        {
            "@odata.etag":"W/\"ZlnW4RIAV06KYYwlrfNZvQAAKGWwbw==\"",
            "id":"AAMkAGIAAAoZDOFAAA=",
            "subject":"Orientation ",
            "bodyPreview":"Dana, this is the time you selected for our orientation. Please bring the notes I sent you.",
            "body":{
                "contentType":"text",
                "content":"Dana, this is the time you selected for our orientation. Please bring the notes I sent you.\r\n"
            }
        }
    ]
}