Ссылка на API REST календаря Outlook (бета-версия)

Область применения: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com

Примечание

В этой документации описывается предварительная версия API для конференц-залов, различных мест проведения событий, общего доступа к календарям, а также событий переадресации и отмены. Параметры предварительного просмотра могут быть изменены до завершения и могут нарушать код, который их использует. Поэтому в своем производственном коде вы должны использовать только производственную версию API. Если она доступна, предпочтительной версией в настоящее время является v2.0.

API календаря обеспечивает доступ к данным о событиях, календаре и группе календарей, защищенным с помощью Azure Active Directory в Office 365, а также к аналогичным данным в учетных записях Майкрософт, особенно в следующих доменах: Hotmail.com, Live.com, MSN.com, Outlook.com и Passport.com.

Примечание

  • Исключением является API поиска времени для собрания, который применяется только к почтовым ящикам Office 365 (на Azure AD), а не к учетным записям Майкрософт.
  • Для упрощения в остальной части этой статьи при упоминании «Outlook.com» также подразумеваются и эти домены учетной записи Майкрософт.

Не интересуетесь бета-версией API? В оглавлении слева перейдите к разделу Ссылка на API Office 365 и выберите нужную версию.

Все операции API календаря

Операции события

Событие представляет собой встречу или собрание в календаре пользователя. Событие может быть образцом серии (для повторяющихся событий), вхождением, единственным экземпляром или исключением.

Операции календаря

Календарь служит контейнером для событий. Пользователь может иметь несколько календарей. В Office 365 каждый календарь можно назначить для группы календарей.

Операции группы календарей

Группы календарей — это способ организации нескольких календарей. Пользователи могут добавлять несколько календарей в одну группу календарей в Outlook или Outlook Web App. Это облегчает пользователям быстрый просмотр всех календарей внутри группы.

Примечание

Outlook.com поддерживает только группу календарей по умолчанию, которая доступна по ../me/calendars ссылке. Вы не можете удалить эту группу календарей или создать другую группу календарей.

См. также

Использование API REST календаря

Проверка подлинности

Как и для других API REST Outlook, для каждого запроса к API Outlook необходимо включать допустимый маркер доступа. Получение маркера доступа требует, чтобы вы зарегистрировались и идентифицировали свою программу и получили соответствующее разрешение.

Вы можете получить дополнительные сведения о некоторых оптимизированных параметрах регистрации и авторизации. Помните об этом, когда выполняете конкретные действия в API календаря.

Области для доступа к общим календарям

Календари Office 365 и Outlook.com поддерживают возможность общего доступа. Пользователь, создавший календарь, может совместно использовать его с другими пользователями. Для доступа к календарю, который совместно используется с этим пользователем, требуются следующие области:

  • Доступ для чтения: https://outlook.office.com/calendars.read.shared
  • Доступ для чтения и записи: https://outlook.office.com/calendars.readwrite.shared

Версия API

API REST календаря поддерживается во всех версиях API REST Outlook. Функциональность зависит от конкретной версии.

Целевой пользователь

Запросы API календаря всегда выполняются от имени текущего пользователя.

Дополнительные сведения, общие для всех подразделов API REST Outlook, см. в разделе Использование API REST Outlook.

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

Получение коллекции событий или события.

Текст события может быть представлен как в текстовом формате, так и в формате HTML.

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

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

При указании любого заголовка ответ будет содержать соответствующий заголовок Preference-Applied в качестве подтверждения:

  • Для запросов в текстовом формате: Preference-Applied: outlook.body-content-type="text"
  • Для запросов в формате HTML: Preference-Applied: outlook.body-content-type="html"

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

Prefer: outlook.timezone="Eastern Standard Time"

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

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

Получение представления календаря

Минимальная требуемая область

Одно из следующих:

Получение вхождений, исключений и отдельных экземпляров событий в представлении календаря за определенный диапазон времени из основного календаря пользователя (../me/calendarview) или из другого календаря.

GET https://outlook.office.com/api/beta/me/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
GET https://outlook.office.com/api/beta/me/calendars/{calendar_id}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
Обязательный параметр Тип Описание
Параметры заголовка
Prefer: outlook.timezone Часовой пояс по умолчанию для событий, указанных в отклике.
Параметры URL-адреса
calendar_id строка Идентификатор календаря, если выполняется получение представления календаря из определенного календаря.
start_datetime datetimeoffset Дата и время начала события.
end_datetime datetimeoffset Дата и время завершения события.

Используйте заголовок Prefer: outlook.timezone для указания часового пояса, который будет использоваться для времени начала и завершения события в ответе. Если событие создано с применением другого часового пояса, время начала и завершения будет изменено в соответствии с указанным часовым поясом.

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

Примечание

По умолчанию каждое событие в ответе включает все его свойства. Используйте $select, чтобы указать только те свойства, которые вам нужны для лучшей производительности. Свойство идентификатора всегда возвращается. См. Параметры запроса OData для фильтрации, сортировки и параметров поискового вызова.

Например, получите представление календаря для октября с отображением только свойства темы для каждого события. Если заголовок Prefer: outlook.timezone не включен в запрос, в качестве часового пояса будет выбран UTC.

GET https://outlook.office.com/api/beta/me/calendarview?startDateTime=2014-10-01T01:00:00Z&endDateTime=2014-10-31T23:00:00Z&$select=Subject

Тип ответа

Расширенные события в рамках указанного диапазона времени.

Получение событий образца серии и одиночных событий

Минимальная требуемая область

Одно из следующих:

Получите набор событий образца серии и одиночных событий экземпляра из основного календаря пользователя (../me/events) или из другого календаря. Для получения экземпляров расширенного события можно получить представление календаря или получить экземпляры события.

GET https://outlook.office.com/api/beta/me/events
GET https://outlook.office.com/api/beta/me/calendars/{calendar_id}/events
Обязательный параметр Тип Описание
Параметры заголовка
Prefer: outlook.timezone Часовой пояс по умолчанию для событий, указанных в отклике.
Параметры URL-адреса
calendar_id строка Идентификатор календаря, если выполняется получение событий из определенного календаря.

Используйте заголовок Prefer: outlook.timezone для указания часового пояса, который будет использоваться для времени начала и завершения события в ответе. Если событие создано с применением другого часового пояса, время начала и завершения будет изменено в соответствии с указанным часовым поясом.

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

Примечание

Каждое событие в ответе включает все его свойства. Используйте $select, чтобы указать только те свойства, которые вам нужны для лучшей производительности. Свойство идентификатора всегда возвращается. См. следующий пример. См. Параметры запроса OData для фильтрации, сортировки и параметров поискового вызова.

В следующем примере показано, как использовать $select для указания возврата только свойств Тема, Организатор, Начало и Завершение каждого события в ответе. Полный список свойств, которые будут отображаться для события, если не используется $select, см. в первом примере ответа в статье Получение события (REST).

Пример запроса

GET https://outlook.office.com/api/beta/me/events?$select=Subject,Organizer,Start,End,Location,Locations 

Пример отклика

Код состояния: 200

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Events(Subject,Organizer,Start,End,Location,Locations)",
    "value":[
        {
            "@odata.id":"https://outlook.office.com/api/beta/Users('94447c6e-ea4c-494c-a9ed-d905e366c5cb@007e925e-fb5a-4f60-9cb6-58a21e692480')/Events('AAMkADNWAACYBXsvAAA=')",
            "@odata.etag":"W/\"SuFHwDRP1EeXJUopWbSLlgAAmBvk2g==\"",
            "Id":"AAMkADNWAACYBXsvAAA=",
            "Subject":"Plan summer company picnic",
            "Start":{
                "DateTime":"2017-06-09T18:00:00.0000000",
                "TimeZone":"UTC"
            },
            "End":{
                "DateTime":"2017-06-09T19:00:00.0000000",
                "TimeZone":"UTC"
            },
            "Location":{
                "DisplayName":"Conf Room 3; Fourth Coffee; Home Office",
                "LocationType":"Default"
            },
            "Locations":[
                {
                    "DisplayName":"Conf Room 3",
                    "LocationType":"Default"
                },
                {
                    "DisplayName":"Fourth Coffee",
                    "LocationType":"Default",
                    "Address":{
                        "Type":"Unknown",
                        "Street":"4567 Main St",
                        "City":"Redmond",
                        "State":"WA",
                        "CountryOrRegion":"US",
                        "PostalCode":"32008"
                    },
                    "Coordinates":{
                        "Latitude":47.672,
                        "Longitude":-102.103
                    }
                },
                {
                    "DisplayName":"Home Office",
                    "LocationType":"Default"
                }
            ],
            "Organizer":{
                "EmailAddress":{
                    "Name":"Alex Wilbur",
                    "Address":"AlexW@contoso.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id":"https://outlook.office.com/api/beta/Users('94447c6e-ea4c-494c-a9ed-d905e366c5cb@007e925e-fb5a-4f60-9cb6-58a21e692480')/Events('AAMkADNPkvzAAA=')",
            "@odata.etag":"W/\"SuFHwDRP1EeXJUopWbSLlgAAdE6yjA==\"",
            "Id":"AAMkADNPkvzAAA=",
            "Subject":"Customer visit",
            "Start":{
                "DateTime":"2017-04-20T21:00:00.0000000",
                "TimeZone":"UTC"
            },
            "End":{
                "DateTime":"2017-04-20T23:00:00.0000000",
                "TimeZone":"UTC"
            },
            "Location":{
                "DisplayName":"",
                "LocationType":"Default",
                "Address":{
                    "Type":"Unknown"
                },
                "Coordinates":{

                }
            },
            "Locations":[

            ],
            "Organizer":{
                "EmailAddress":{
                    "Name":"Alex Wilbur",
                    "Address":"AlexW@contoso.onmicrosoft.com"
                }
            }
        }
    ]
}

Получение экземпляров события

Минимальная требуемая область

Одно из следующих:

Можно получить экземпляры (вхождения) события за указанный диапазон времени. Если событие относится к типу SeriesMaster, возвращаются вхождения и исключения события за указанный диапазон времени.

GET https://outlook.office.com/api/beta/me/events/{event_id}/instances?startDateTime={start_datetime}&endDateTime={end_datetime}
Обязательный параметр Тип Описание
Параметры заголовка
Prefer: outlook.timezone Часовой пояс по умолчанию для событий в ответе.
Параметры URL-адреса
event_id строка Идентификатор события.
start_datetime datetimeoffset Дата и время UTC начала события.
end_datetime datetimeoffset Дата и время UTC завершения события.

Используйте заголовок Prefer: outlook.timezone для указания часового пояса, который будет использоваться для времени начала и завершения события в ответе. Если событие создано с применением другого часового пояса, время начала и завершения будет изменено в соответствии с указанным часовым поясом.

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

Тип ответа

Запрошенный набор событий.

Примечание

По умолчанию каждое событие в ответе включает все его свойства. Используйте $select, чтобы указать только те свойства, которые вам нужны для лучшей производительности. Свойство идентификатора всегда возвращается. См. Параметры запроса OData для фильтрации, сортировки и параметров поискового вызова.

Например, получите экземпляры определенного события за октябрь, включите только свойства Тема, Начало и Завершение каждого экземпляра:

GET https://outlook.office.com/api/beta/me/events/AAMkAGE0MGM1Y2M5LWEAAA=/instances?startDateTime=2014-10-01T01:00:00Z&endDateTime=2014-10-31T23:00:00Z&$select=Subject,Start,End

Получение события

Минимальная требуемая область

Одно из следующих:

Получение события по идентификатору.

GET https://outlook.office.com/api/beta/me/events/{event_id}
Обязательный параметр Тип Описание
Параметры заголовка
Prefer: outlook.timezone Часовой пояс по умолчанию для событий в ответе.
Параметры URL-адреса
event_id строка Идентификатор события.

Используйте заголовок Prefer: outlook.timezone для указания часового пояса, который будет использоваться для времени начала и завершения события в ответе. Если событие создано с применением другого часового пояса, время начала и завершения будет изменено в соответствии с указанным часовым поясом.

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

Пример запроса

GET https://outlook.office.com/api/beta/me/events/AAMkAGI2TG93AAA=

Пример отклика

    {
        "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
        "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG93AAA=')",
        "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x48w==\"",
        "Id": "AAMkAGI2TG93AAA=",
        "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x48w==",
        "Categories": [],
        "CreatedDateTime": "2014-10-19T23:13:47.3959685Z",
        "LastModifiedDateTime": "2014-10-19T23:13:47.6772234Z",
        "Subject": "Weekly Meeting on Contoso Project",
        "BodyPreview": "Setting up some time to review the budget and planning on the Contoso Project",
        "Body": {
            "ContentType": "HTML",
            "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nSetting up some time to review the budget and planning on the Contoso Project\r\n</body>\r\n</html>\r\n"
        },
        "Importance": "Normal",
        "HasAttachments": false,
        "Start": {
            "DateTime": "2014-10-13T21:00:00",
            "TimeZone": "Pacific Standard Time"
        },
        "End": {
            "DateTime": "2014-10-13T22:00:00",
            "TimeZone": ""Pacific Standard Time"
        },        
        "Location": {
            "DisplayName": "Alex's Office",
        },
        "Locations":[
            {
                "DisplayName": "Alex's Office",
            }
        ]
        "ShowAs": "Busy",
        "IsAllDay": false,
        "IsCancelled": false,
        "IsOrganizer": true,
        "ResponseRequested": true,
        "Type": "SeriesMaster",
        "SeriesMasterId": null,
        "Attendees": [
            {
                "EmailAddress": {
                    "Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
                    "Name": "Janet Schorr"
                },
                "Status": {
                    "Response": "None",
                    "Time": "0001-01-01T00:00:00Z"
                },
                "Type": "Required"
            },
            {
                "EmailAddress": {
                    "Address": "pavelb@a830edad9050849NDA1.onmicrosoft.com",
                    "Name": "Pavel Bansky"
                },
                "Status": {
                    "Response": "None",
                    "Time": "0001-01-01T00:00:00Z"
                },
                "Type": "Required"
            }
        ],
        "Recurrence": {
            "Pattern": {
                "Type": "Weekly",
                "Interval": 1,
                "Month": 0,
                "Index": "First",
                "FirstDayOfWeek": "Sunday",
                "DayOfMonth": 0,
                "DaysOfWeek": [
                    "Monday"
                ]
            },
            "RecurrenceTimeZone": "Pacific Standard Time",
            "Range": {
                "Type": "NoEnd",
                "StartDate": "2014-10-13",
                "EndDate": "2014-11-13",
                "NumberOfOccurrences": 0
            }
        },
        "OriginalEndTimeZone": "Pacific Standard Time",
        "OriginalStartTimeZone": "Pacific Standard Time",
        "Organizer": {
            "EmailAddress": {
                "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
                "Name": "Alex D"
            }
        },
        "OnlineMeetingUrl": null
    }

Тип ответа

Запрошенное событие.

Примечание

По умолчанию ответ включает все свойства события. Используйте $select, чтобы указать только те свойства, которые вам нужны для лучшей производительности. Свойство идентификатора всегда возвращается. См. Параметры запроса OData для фильтрации, сортировки и параметров поискового вызова.

В следующем примере показано, как использовать $select для указания возврата только свойств Тема, Организатор, Начало и Завершение события.

Пример запроса

GET https://outlook.office.com/api/beta/me/events/AAMkAGI2TG93AAA=?$select=Subject,Organizer,Start,End

Пример отклика

    {
        "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
        "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG93AAA=')",
        "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x48w==\"",
        "Id": "AAMkAGI2TG93AAA=",
        "Subject": "Weekly Meeting on Contoso Project",
        "Start": {
            "DateTime": "2014-10-13T21:00:00",
            "TimeZone": "Pacific Standard Time"
        },
        "End": {
            "DateTime": "2014-10-13T22:00:00",
            "TimeZone": ""Pacific Standard Time"
        }, 
        "Organizer": {
            "EmailAddress": {
                "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
                "Name": "Alex D"
            }
        }
    }

Синхронизация событий

Минимальная требуемая область

Одно из следующих:

Выполните синхронизацию и получите новые, обновленные или удаленные события за указанный диапазон времени из основного календаря пользователя (../me/calendarview) или из другого календаря. Такой набор событий за диапазон времени также называется представлением календаря. Возвращенные события могут включать вхождения и исключения повторяющихся серий и одиночные экземпляры.

Для синхронизации представления календаря обычно требуется серия двух или нескольких запросов синхронизации, каждый из которых является вызовом GET. Для синхронизации представления календаря используйте метод GET, как при использовании получения представления календаря, однако необходимо включить определенные заголовки запроса, deltaToken или skipToken, где необходимо.

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

  • Необходимо указать заголовок "Prefer: odata.track-changes" во всех запросах синхронизации за исключением тех, которые включают skipToken при возврате от предыдущего запроса синхронизации. Перед продолжением в первом ответе найдите заголовок Preference-Applied: odata.track-changes для подтверждения того, что ресурс поддерживает синхронизацию. (Для получения дополнительной информации о skipToken см. данные примера второго ответа.)

  • Можно указать заголовок "Prefer: odata.maxpagesize={x}" для указания максимального числа событий возврата запроса синхронизации.

Далее представлена типичная серия событий синхронизации в представлении календаря:

  1. Выполните начальный запрос GET с обязательным заголовком Prefer: odata.track-changes. Начальный ответ на запрос синхронизации всегда возвращает deltaToken. (Второй и последующие запросы GET отличаются от первого запроса GET, так как включают deltaToken или skipToken, полученные в предыдущем ответе.)

  2. Если первый ответ возвращает заголовок Preference-Applied: odata.track-changes, можно продолжить синхронизацию.

    • Выполните второй запрос GET. Укажите заголовок Prefer: odata.track-changes и deltaToken из первого запроса GET для определения, имеются ли дополнительные события. Второй запрос вернет дополнительные события, а также skipToken, если имеются дополнительные события, или deltaToken, если была выполнена синхронизация последнего события, в этом случае можно прекратить действия.

    • Продолжите синхронизацию, отправив вызов GET и указав skipToken от предыдущего вызова. Прекратите действия, когда получите окончательный ответ, содержащий заголовок @odata.deltaLink с deltaToken, что указывает на завершение синхронизации.

Проверьте синтаксис на наличие начального и последующих вызовов в ходе синхронизации.

Синхронизация в календаре по умолчанию

Первоначальный запрос:

GET https://outlook.office.com/api/beta/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}

Второй запрос или первый запрос последующей серии:

GET https://outlook.office.com/api/beta/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$deltatoken={delta_token}

Третий или последующий запрос в той же серии:

GET https://outlook.office.com/api/beta/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$skiptoken={skip_token}

Синхронизация в определенном календаре

Первоначальный запрос:

GET https://outlook.office.com/api/beta/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}

Второй запрос или первый запрос последующей серии:

GET https://outlook.office.com/api/beta/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$deltatoken={delta_token}

Третий или последующий запрос в той же серии:

GET https://outlook.office.com/api/beta/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$skiptoken={skip_token}

Параметры

Параметр Тип Описание
Параметры заголовка
Prefer: outlook.timezone Часовой пояс по умолчанию для событий в ответе.
Параметры URL-адреса
user_context строка Контекст пользователя. Можно использовать значение 'me' для указания контекста текущего пользователя. Можно также использовать формат users/{upn}, где upn представляет собой имя участника-пользователя, обычно это адрес электронной почты пользователя.
calendar_id строка Идентификатор календаря, если выполняется получение представления календаря из определенного календаря.
start_datetime datetimeoffset Дата и время начала события.
end_datetime datetimeoffset Дата и время завершения события.
delta_token строка Строка deltaToken была возвращена в качестве части значения для @odata.deltaLink в предыдущем ответе синхронизации.
skip_token строка Строка skipToken была возвращена в качестве части значения для @odata.nextLink в предыдущем ответе синхронизации.

Используйте заголовок Prefer: outlook.timezone для указания часового пояса, который будет использоваться для времени начала и завершения события в ответе. Если событие создано с применением другого часового пояса, время начала и завершения будет изменено в соответствии с указанным часовым поясом.

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

Примечание

  • При указании "Prefer: odata.track-changes" в первоначальном запросе, если ответ поддерживает синхронизацию, ответ будет иметь "Preference-applied: odata.track-changes" в заголовке.
  • Если выполняется попытка синхронизации ресурса, который не поддерживается, или если это не первоначальный запрос синхронизации, в ответе не будет заголовка "Preference-applied".
  • Для изменения интервала укажите другие параметры запроса startdatetime и enddatetime.
  • Каждое событие в ответе включает все его свойства.
  • Для повторяющейся серии ответ синхронизации включает все событие для повторяющихся событий образца и исключения.
  • Экземпляры повторяющейся серии сокращены и содержат только свойства Начало и Завершение. Можно получить оставшуюся информацию события из повторяющегося события образца. Справочная информация приведена в статье Ресурс событий.
  • Нельзя использовать $filter, $count, $select, $skip, $top, и $search параметры запроса.

Тип ответа

Расширенные события и сокращенные события за указанный диапазон времени.

Пример

В следующем примере показаны первоначальный и второй запросы синхронизации для синхронизации календаря по умолчанию для пользователя. Каждый запрос позволяет одновременно вернуть только одно полное событие:

  • Первоначальный ответ возвращает одно событие, deltaLink и deltaToken.
  • Второй запрос использует deltatoken. Второй ответ возвращает одно событие, nextLink и skipToken.

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

Для получения дополнительной информации см. Синхронизация событий в представлении календаря Outlook.

Пример исходного запроса

    GET https://outlook.office.com/api/beta/me/calendarview?startdatetime=2015-01-01T00:00:00Z&enddatetime=2015-04-10T00:00:00Z HTTP/1.1
    Authorization: Bearer <token>
    Prefer: odata.track-changes
    Prefer: odata.maxpagesize=1
    Prefer: outlook.timezone="Pacific Standard Time"

Пример данных первоначального ответа

Preference-Applied: odata.track-changes

    {
        "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarView",
        "value": [
            {
                "@odata.id": "https://outlook.office.com/api/beta/Users('user0@contoso.com')/Events('asdas==')",
                "@odata.etag": "W/\"L8Z+4Y4u7k+97uRKg==\"",
                "Id": "AQMkANJAAAAA==",
                "ChangeKey": "L8Z+AAAAARKg==",
                "Categories": [
                ],
                "DateTimeCreated": "2015-04-10T17:54:49.2725912Z",
                "DateTimeLastModified": "2015-04-10T17:54:49.3038538Z",
                "Subject": "Discuss the Calendar REST API",
                "BodyPreview": "I think it will meet our requirements!",
                "Body": {
                    "ContentType": "HTML",
                    "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nI think it will meet our requirements!\r\n</body>\r\n</html>\r\n"
                },
                "Importance": "Normal",
                "HasAttachments": false,
                "Start": {
                    "DateTime": "2015-04-05T18:00:00",
                    "TimeZone": "Pacific Standard Time"
                }
                "End": {
                    "DateTime": "2015-04-05T19:00:00",
                    "TimeZone": "Pacific Standard Time"
                }
                "ReminderMinutesBeforeStart": "15",
                "IsReminderOn": "true",
                "Location":{
                    "DisplayName":"",
                    "LocationType":"Default",
                    "Address":{
                        "Type":"Unknown"
                    },
                    "Coordinates":{

                    }
                },
                "Locations":[

                ],
                "ResponseStatus": {
                    "Response": "Organizer",
                    "Time": "0001-01-01T00:00:00Z"
                },
                "ShowAs": "Busy",
                "IsAllDay": false,
                "IsCancelled": false,
                "IsOrganizer": true,
                "ResponseRequested": true,
                "Type": "SingleInstance",
                "SeriesMasterId": null,
                "Attendees": [
                ],
                "Recurrence": null,
                "OriginalEndTimeZone": "Pacific Standard Time",
                "OriginalStartTimeZone": "Pacific Standard Time",
                "Organizer": {
                    "EmailAddress": {
                        "Address": "user0@contoso.com",
                        "Name": "user0"
                    }
                },
                "iCalUId": "040000008200E9888E07599CCFA23",
                "WebLink": "https://outlook.office.com/owa/?ItemID=AAAINJAAAAA%3D%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
                "OnlineMeetingUrl": null
            }
        ],
        "@odata.deltaLink": "https://outlook.office.com/api/beta/me/calendarview/?startdatetime=2015-01-01T00%3a00%3a00Z&enddatetime=2015-04-10T00%3a00%3a00Z&%24deltatoken=v2%2cH4roCAAA%3d%2c1.0%2cFalse%2cA00%2c"
    }

Пример второго запроса

    GET https://outlook.office.com/api/beta/me/calendarview?startdatetime=2015-01-01T00:00:00Z&enddatetime=2015-04-10T00:00:00Z&$deltatoken=v2%2cH4roCAAA%3d%2c1.0%2cFalse%2cA00%2c
    Authorization: Bearer <token>
    Prefer: odata.track-changes
    Prefer: odata.maxpagesize=1
    Prefer: outlook.timezone="Pacific Standard Time"

Пример данных второго ответа

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarView/$delta",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('user0@contoso.com')/Events('AAMkAD0jAAA=')",
            "@odata.etag": "W/\"P2fd7QAAAAAVFA==\"",
            "Id": "AAMkADNkNmVlOTITVAAAAAA0jAAA=",
            "ChangeKey": "P2fdmIU1QAAAAAVFA==",
            "Categories": [
            ],
            "DateTimeCreated": "2015-04-15T18:59:11.0226221Z",
            "DateTimeLastModified": "2015-04-15T18:59:11.0694979Z",
            "Subject": "1 hour",
            "BodyPreview": "\u200b",
            "Body": {
                "ContentType": "HTML",
                "Content": "<html><body>content</body></html>"
            },
            "Importance": "Normal",
            "HasAttachments": false,
            "Start": {
                "DateTime": "2015-04-16T18:00:00",
                "TimeZone": "Pacific Standard Time"
            }
            "End": {
                "DateTime": "2015-04-16T19:00:00",
                "TimeZone": Pacific Standard Time"
            }
            "ReminderMinutesBeforeStart": "15",
            "IsReminderOn": "true",
            "Location":{
                "DisplayName":"",
                "LocationType":"Default",
                "Address":{
                    "Type":"Unknown"
                },
                "Coordinates":{

                }
            },
            "Locations":[

            ],
            "ResponseStatus": {
                "Response": "Organizer",
                "Time": "0001-01-01T00:00:00Z"
            },
            "ShowAs": "Busy",
            "IsAllDay": false,
            "IsCancelled": false,
            "IsOrganizer": true,
            "ResponseRequested": true,
            "Type": "SingleInstance",
            "SeriesMasterId": null,
            "Attendees": [
            ],
            "Recurrence": null,
            "OriginalEndTimeZone": "Pacific Standard Time",
            "OriginalStartTimeZone": "Pacific Standard Time",
            "Organizer": {
                "EmailAddress": {
                    "Address": "user0@contoso.com",
                    "Name": "user0"
                }
            },
            "iCalUId": "040000008200E09BB89A316862",
            "WebLink": "https://outlook.office.com/owa/?ItemID=AAMkADNkNmVlOAA%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
            "OnlineMeetingUrl": null
        }
    ],
    "@odata.nextLink": "https://outlook.office.com/api/beta/me/calendarview/?startdatetime=2015-01-01T00%3a00%3a00Z&enddatetime=2015-08-10T00%3a00%3a00Z&%24skipToken=530c9d02ae1a4d96804538bd4d381546"
}

Поиск времени встречи

Минимальная требуемая область

Одно из следующих:

Предложение времени проведения собрания с учетом доступности организатора и участников, а также ограничений по местоположению или времени, указанных в качестве параметров.

Данная операция применима только к почтовым ящикам Office 365 (в Azure AD) и не применима к учетным записям Microsoft.

POST https://outlook.office.com/api/{version}/me/findmeetingtimes

Далее указаны все поддерживаемые параметры. В зависимости от сценария укажите необходимые параметры в тексте запроса действия FindMeetingTimes.

Параметр Тип Описание Обязательный?
Attendees Набор (AttendeeBase) Участники или ресурсы для собрания. Если указан пустой набор, действие FindMeetingTimes ищет интервалы свободного времени только для организатора. Необязательный
IsOrganizerOptional Edm.Boolean Укажите true, если организатор необязательно должен присутствовать на собрании. Значение по умолчанию: false. Необязательный
LocationConstraint LocationConstraint Требования организатора к месту проведения собрания (например, требуется ли предложение или собрание может пройти только в определенных местах). Необязательный
MaxCandidates Edm.Int32 Максимальное число предложений по собранию в ответе. Необязательный
MeetingDuration Edm.Duration Продолжительность собрания в формате ISO 8601, например PT1H обозначает 1 час. Если продолжительность собрания не указана, FindMeetingTimes использует значение по умолчанию, которое составляет 30 минут. Необязательный
MinimumAttendeePercentage Edm.Double Минимальная достоверность, необходимая, чтобы вернуть период времени в ответе. Это процентное значение от 0 до 100. Необязательный
ReturnSuggestionReasons Edm.Boolean Укажите true для возврата причины каждого предложения в свойстве SuggestionReason. Значением по умолчанию является false, при этом свойство не возвращается. Необязательный
TimeConstraint TimeConstraint Ограничения по времени для собрания, к которым могут относиться характер собрания (ActivityDomain) и возможное время проведения собрания (TimeSlots). Если параметр ActivityDomain не задан, метод FindMeetingTimes считает, что для этого параметра установлено значение Work. Необязательный

FindMeetingTimes проверяет сведения о доступности в основных календарях организатора и участников. В зависимости от указанных параметров действие предложит оптимальное время встречи. В следующей таблице описаны ограничения, которые можно указать в параметре TimeConstraint.

Значение ActivityDomain в TimeConstraint Предложения по времени проведения собраний
Work Предложения ограничиваются рамками рабочего времени пользователя, которое определяется настройками его календаря. Пользователь или администратор также могут изменять рабочее время. По умолчанию рабочим считается время с 8:00 до 17:00 (в часовом поясе, установленном для почтового ящика пользователя) с понедельника по пятницу. Это значение является значением по умолчанию, если не задан параметр ActivityDomain.
Персональные Предложения возможны в рабочее время пользователя, а также в субботу и воскресенье. По умолчанию задано время с 8:00 до 17:00 (в часовом поясе, установленном для почтового ящика пользователя) с понедельника по воскресенье.
Unrestricted Предложения могут относиться к любому времени в любой день недели.
Неизвестно Не рекомендуется использовать это значение, так как в будущем его поддержка будет прекращена. В настоящее время значение равносильно значению Work. Измените существующий код, используя соответствующие значения Work, Personal или Unrestricted.

Тип ответа

Объект MeetingTimeSuggestionsResult включает набор предложений, каждый тип MeetingTimeSuggestion и свойство EmptySuggestionsReason.

Каждое предложение определяется как объект MeetingTimeSuggestion, где средняя вероятность присутствия участников составляет 50 % или определенное процентное значение, указанное в параметре MinimumAttendeePercentage.

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

Prefer: outlook.timezone="Pacific Standard Time"

Если FindMeetingTimes не может вернуть любые предложения собрания, в ответе будет указана причина в свойстве EmptySuggestionsReason. На основе этого значения можно скорректировать параметры и снова вызвать FindMeetingTimes.

Примечание

В настоящий момент FindMeetingTimes предполагает, что любой объект Attendee, являющийся пользователем (а не ресурсом), представляет собой обязательного участника. Укажите Required для пользователя и Resource для ресурса в соответствующем свойстве Type в составе параметра набора Attendees.

Во всех следующих примерах выполняется вызов FindMeetingTimes с различиями по доступности участников, ограничениям по местоположению или времени:

Поиск времени и места для встречи с определенными участниками

Поиск времени и мест для встречи с указанием следующих параметров в тексте запроса:

  • Attendees
  • TimeConstraint
  • MeetingDuration

Пример запроса

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

POST https://outlook.office.com/api/beta/me/findmeetingtimes

Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json 

{ 
  "Attendees": [ 
    { 
      "Type": "Required",  
      "EmailAddress": { 
        "Name": "Fanny",
        "Address": "fannyd@prosewareltd.onmicrosoft.com" 
      } 
    } 
  ],  
  "TimeConstraint": { 
    "ActivityDomain":"Work",
    "Timeslots": [ 
       { 
        "Start": { 
          "DateTime": "2016-05-20T07:00:00",  
          "TimeZone": "Pacific Standard Time" 
        },  
        "End": { 
          "DateTime": "2016-05-20T17:00:00",  
          "TimeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "MeetingDuration": "PT1H" 
} 

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
    "MeetingTimeSuggestions": [
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-20T10:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-20T11:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
                {
                    "Attendee": {
                        "Type": "Required",
                        "EmailAddress": {
                            "Name": "Fanny",
                            "Address": "fannyd@prosewareltd.onmicrosoft.com"
                        }
                    },
                    "Availability": "Free"
                }
            ],
            "Locations": [
                {
                    "DisplayName": "Tokyo conference room",
                    "LocationType": "Default"
                }
            ]
        },
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-20T11:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-20T12:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
                {
                    "Attendee": {
                        "Type": "Required",
                        "EmailAddress": {
                            "Name": "Fanny",
                            "Address": "fannyd@prosewareltd.onmicrosoft.com"
                        }
                    },
                    "Availability": "Free"
                }
            ],
            "Locations": [
                {
                    "DisplayName": "Paris conference room",
                    "LocationType": "Default"
                }
            ]
        }
    ],
    "EmptySuggestionsReason": ""
}

Поиск времени для встречи в известном месте и получение причины для каждого предложения

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

  • Attendees
  • LocationConstraint
  • TimeConstraint
  • MeetingDuration
  • ReturnSuggestionReasons

При установке параметра ReturnSuggestionReasons для каждого предложения отображается объяснение в свойстве SuggestionReason, если метод FindMeetingTimes возвращает какие-либо предложения.

Пример запроса

POST https://outlook.office.com/api/beta/me/findmeetingtimes

Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json 

{ 
  "Attendees": [ 
    { 
      "Type": "Required",  
      "EmailAddress": { 
        "Name": "Fanny",
        "Address": "fannyd@prosewareltd.onmicrosoft.com" 
      } 
    } 
  ],  
  "LocationConstraint": { 
    "IsRequired": "false",  
    "SuggestLocation": "false",  
    "Locations": [ 
      { 
        "ResolveAvailability": "false",
        "DisplayName": "Conf room Hood" 
      } 
    ] 
  },  
  "TimeConstraint": { 
    "ActivityDomain":"Work",
    "Timeslots": [ 
      { 
        "Start": { 
          "DateTime": "2016-05-20T07:00:00",  
          "TimeZone": "Pacific Standard Time" 
        },  
        "End": { 
          "DateTime": "2016-05-20T17:00:00",  
          "TimeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "MeetingDuration": "PT2H",
  "ReturnSuggestionReasons": "true"
} 

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
    "MeetingTimeSuggestions": [
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-20T10:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-20T12:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
                {
                    "Attendee": {
                        "Type": "Required",
                        "EmailAddress": {
                            "Name": "Fanny",
                            "Address": "fannyd@prosewareltd.onmicrosoft.com"
                        }
                    },
                    "Availability": "Free"
                }
            ],
            "Locations": [
                {
                    "DisplayName": "Conf room Hood"
                    "LocationType": "Default"
                }
            ],
            "SuggestionReason": "Suggested because it is one of the nearest times when all attendees are available."
        }
    ],
    "EmptySuggestionsReason": ""
}

Поиск времени для встречи, когда участники недоступны

Поиск времени для встречи в заранее установленном месте с указанием следующих параметров в тексте запроса:

  • Attendees
  • LocationConstraint
  • TimeConstraint
  • MeetingDuration

В этом примере в соответствии с указанными параметрами и доступностью участника метод FindMeetingTimes не может вернуть какие-либо предложения, вместо этого выполняется возврат причины AttendeesUnavailable в свойстве EmptySuggestionsReason.

См. прочие возможные причины невозможности возврата каких-либо предложений по собранию.

Пример запроса

POST https://outlook.office.com/api/beta/me/findmeetingtimes

Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json 

{ 
  "Attendees": [ 
    { 
      "Type": "Required",  
      "EmailAddress": { 
        "Name": "Fanny",
        "Address": "fannyd@prosewareltd.onmicrosoft.com" 
      } 
    } 
  ],  
  "LocationConstraint": { 
    "IsRequired": "false",  
    "SuggestLocation": "false",  
    "Locations": [ 
      { 
        "ResolveAvailability": "false",
        "DisplayName": "Conf room Hood" 
      } 
    ] 
  },  
  "TimeConstraint": { 
    "Timeslots": [ 
      { 
        "Start": { 
          "DateTime": "2016-05-20T7:00:00",  
          "TimeZone": "Pacific Standard Time" 
        },  
        "End": { 
          "DateTime": "2016-05-20T14:00:00",  
          "TimeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "MeetingDuration": "PT2H" 
}

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
    "MeetingTimeSuggestions": [
    ],
    "EmptySuggestionsReason": "AttendeesUnavailable"
}

Поиск времени для встречи, когда доступны не все участники

Поиск времени для встречи в заранее установленном месте с указанием следующих параметров в тексте запроса:

  • Attendees
  • LocationConstraint
  • TimeConstraint
  • MeetingDuration
  • ReturnSuggestionReasons
  • MinimumAttendeePercentage

В этом примере доступен только участник из 2. Каждое предложение по собранию, которое возвращает метод FindMeetingTimes, включает:

  • Доступность каждого участника.
  • Вычисленная достоверность собрания, которая представляет собой среднее процентное значение вероятности посещения участником собрания. Это значение должно соответствовать 60 %, как указано в MinimumAttendeePercentage.
  • SuggestionHint, так как установлен параметр ReturnSuggestionReasons.

Для получения дополнительной информации о достоверности собрания перейдите по ссылке.

Пример запроса

POST https://outlook.office.com/api/beta/me/findmeetingtimes

Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json 

{ 
  "Attendees": [ 
    { 
      "Type": "Required",  
      "EmailAddress": { 
        "Name": "Fanny",
        "Address": "fannyd@prosewareltd.onmicrosoft.com" 
      } 
    },
   { 
      "Type": "Optional",  
      "EmailAddress": { 
        "Name": "Dana",
        "Address": "danas@prosewareltd.onmicrosoft.com" 
      } 
    } 
  ],  
  "LocationConstraint": { 
    "IsRequired": "false",  
    "SuggestLocation": "false",  
    "Locations": [ 
      { 
        "ResolveAvailability": "false",
        "DisplayName": "Conf room Hood" 
      } 
    ] 
  },  
  "TimeConstraint": { 
    "ActivityDomain":"Work",
    "Timeslots": [ 
      { 
        "Start": { 
          "DateTime": "2016-05-20T09:00:00",  
          "TimeZone": "Pacific Standard Time" 
        },  
        "End": { 
          "DateTime": "2016-05-20T17:00:00",  
          "TimeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "MeetingDuration": "PT1H",
  "ReturnSuggestionReasons": "true",
  "MinimumAttendeePercentage": "60"
}

Пример отклика

Код состояния: 200

{
   "@odata.context":"https://outlook.office.com/api/beta/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
   "MeetingTimeSuggestions":[
      {
         "MeetingTimeSlot":{
            "Start":{
               "DateTime":"2016-05-20T10:00:00.0000000",
               "TimeZone":"Pacific Standard Time"
            },
            "End":{
               "DateTime":"2016-05-20T11:00:00.0000000",
               "TimeZone":"Pacific Standard Time"
            }
         },
         "Confidence":100.0,
         "OrganizerAvailability":"Free",
         "AttendeeAvailability":[
            {
               "Attendee":{
                  "Type":"Required",
                  "EmailAddress":{
                     "Name": "Fanny",
                     "Address":"fannyd@prosewareltd.onmicrosoft.com"
                  }
               },
               "Availability":"Free"
            },
            {
               "Attendee":{
                  "Type":"Required",
                  "EmailAddress":{
                     "Name": "Dana",
                     "Address":"danas@prosewareltd.onmicrosoft.com"
                  }
               },
               "Availability":"Free"
            }
         ],
         "Locations":[
            {
               "DisplayName":"Conf room Hood"
               "LocationType": "Default"
            }
         ],
         "SuggestionReason":"Suggested because it is one of the nearest times when most attendees are available."
      },
      {
         "MeetingTimeSlot":{
            "Start":{
               "DateTime":"2016-05-20T11:00:00.0000000",
               "TimeZone":"Pacific Standard Time"
            },
            "End":{
               "DateTime":"2016-05-20T12:00:00.0000000",
               "TimeZone":"Pacific Standard Time"
            }
         },
         "Confidence":74.5,
         "OrganizerAvailability":"Free",
         "AttendeeAvailability":[
            {
               "Attendee":{
                  "Type":"Required",
                  "EmailAddress":{
                     "Name": "Fanny",
                     "Address":"fannyd@prosewareltd.onmicrosoft.com"
                  }
               },
               "Availability":"Free"
            },
            {
               "Attendee":{
                  "Type":"Required",
                  "EmailAddress":{
                     "Name": "Dana",
                     "Address":"danas@prosewareltd.onmicrosoft.com"
                  }
               },
               "Availability":"Unknown"
            }
         ],
         "Locations":[
            {
               "DisplayName":"Conf room Hood"
               "LocationType": "Default"
            }
         ],
         "SuggestionReason":"Suggested because it is one of the nearest times when most attendees are available."
      }
   ],
   "EmptySuggestionsReason":""
}

Поиск интервалов свободного времени для пользователя, который вошел в систему

Поиск интервалов свободного времени в основном календаре пользователя, который вошел в систему, в любой день недели в пределах диапазона дат с указанием следующих параметров в тексте запроса:

  • TimeConstraint
  • MeetingDuration

Пример запроса

В данном примере выполняется поиск 1-часовых интервалов свободного времени, как указано с помощью параметра MeetingDuration, в основном календаре пользователя, который вошел в систему, в любой день недели в пределах диапазона дат, как указано параметром TimeConstraint.

POST https://outlook.office.com/api/beta/me/findmeetingtimes

Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json 

{ 
  "Attendees": [],
  "TimeConstraint": {
    "ActivityDomain":"Unrestricted", 
    "Timeslots": [ 
      { 
        "Start": { 
          "DateTime": "2016-05-20T06:00:00",  
          "TimeZone": "Pacific Standard Time" 
        },  
        "End": { 
          "DateTime": "2016-05-22T23:00:00",  
          "TimeZone": "Pacific Standard Time" 
        } 
      } 
    ] 
  },  
  "MeetingDuration": "PT1H"
}

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
    "MeetingTimeSuggestions": [
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-20T06:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-20T07:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
            ],
            "Locations": [
            ]
        },
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-21T09:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-21T10:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
            ],
            "Locations": [
            ]
        },
        {
            "MeetingTimeSlot": {
                "Start": {
                    "DateTime": "2016-05-22T19:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                },
                "End": {
                    "DateTime": "2016-05-22T20:00:00.0000000",
                    "TimeZone": "Pacific Standard Time"
                }
            },
            "Confidence": 100.0,
            "OrganizerAvailability": "Free",
            "AttendeeAvailability": [
            ],
            "Locations": [
            ]
        }
    ],
    "EmptySuggestionsReason": ""
}

Получение конференц-залов (предварительная версия)

В Outlook арендатор может организовать конференц-залы в списки помещений. Каждый конференц-зал и список помещений представлен экземпляром EmailAddress.

Получение списков помещений (предварительная версия)

Минимальная требуемая область

Одно из следующих:

  • User.Read.All
  • User.ReadBasic.All_

Получение списков помещений, определенных для арендатора.

GET https://outlook.office.com/api/beta/me/findroomlists

Тип ответа

Набор экземпляров EmailAddress. Если для арендатора не определены какие-либо списки, возвращается пустой массив.

Пример запроса

GET https://outlook.office.com/api/beta/me/findroomlists

Пример отклика

Status code: 200 

{
  "@odata.context":"https://outlook.office.com/api/beta/$metadata#Collection(Microsoft.OutlookServices.EmailAddress)",
  "value":[
    {
      "Name":"Building 1 Rooms",
      "Address":"Building1Rooms@contoso.onmicrosoft.com"
    },
    {
      "Name":"Building 2 Rooms",
      "Address":"Building2Rooms@contoso.onmicrosoft.com"
    }
  ]
}

Получение помещений (предварительная версия)

Минимальная требуемая область

Одно из следующих:

  • User.Read.All
  • User.ReadBasic.All

Можно получить все конференц-залы, определенные для арендатора пользователя, или конференц-залы в определенном списке помещений.

Примечание

Эти операции возвращают до 100 первых помещений арендатора.

Получение всех помещений арендатора пользователя:

GET https://outlook.office.com/api/beta/me/findrooms

Получение помещений в указанном списке помещений:

GET https://outlook.office.com/api/beta/me/findrooms(roomlist='{room_list}') 
Необязательный параметр Тип Описание
Параметр функции
room_list строка SMTP-адрес, связанный со списком помещений. Каждый список помещений представлен экземпляром EmailAddress, включающим SMTP-адрес.

Тип ответа

Набор экземпляров EmailAddress.

Пример запроса

В следующем примере выполняется получение помещений, определенных для арендатора пользователя, который вошел в систему.

GET https://outlook.office.com/api/beta/me/findrooms 

Пример отклика

Status code: 200 

{
  "@odata.context":"https://outlook.office.com/api/beta/$metadata#Collection(Microsoft.OutlookServices.EmailAddress)",
  "value":[
    {
      "Name":"Conf Room Adams",
      "Address":"Adams@contoso.onmicrosoft.com"
    },
    {
      "Name":"Conf Room Baker",
      "Address":"Baker@contoso.onmicrosoft.com"
    },
    {
      "Name":"Conf Room Crystal",
      "Address":"Crystal@contoso.onmicrosoft.com"
    },
    {
      "Name":"Conf Room Hood",
      "Address":"Hood@contoso.onmicrosoft.com"
    },
    {
      "Name":"Conf Room Rainier",
      "Address":"Rainier@contoso.onmicrosoft.com"
    },
    {
      "Name":"Conf Room Stevens",
      "Address":"Stevens@contoso.onmicrosoft.com"
    },
    {
      "Name":"SurfaceHub",
      "Address":"SurfaceHub@contoso.onmicrosoft.com"
    }
  ]
}

Пример запроса

В следующем примере выполняется получение помещений в указанном списке помещений, идентифицированных по адресу электронной почты Building2Rooms@contoso.onmicrosoft.com.

GET https://outlook.office.com/api/beta/me/findrooms(roomlist='Building2Rooms@contoso.onmicrosoft.com') 

Пример отклика

Status code: 200 

{
  "@odata.context":"https://outlook.office.com/api/beta/$metadata#Collection(Microsoft.OutlookServices.EmailAddress)",
  "value":[
    {
      "Name":"Conf Room Baker",
      "Address":"Baker@contoso.onmicrosoft.com"
    },
    {
      "Name":"Conf Room Hood",
      "Address":"Hood@contoso.onmicrosoft.com"
    },
    {
      "Name":"Conf Room Rainier",
      "Address":"Rainier@contoso.onmicrosoft.com"
    }
  ]
}

Создание событий

Создание события календаря

Минимальная требуемая область

Одно из следующих:

Создайте событие в основном календаре пользователя или в определенном календаре путем размещения в конечной точке календаря events. При создании события сервер отправляет приглашения всем участникам.

POST https://outlook.office.com/api/beta/me/events
POST https://outlook.office.com/api/beta/me/calendars/{calendar_id}/events
Обязательный параметр Тип Описание
Параметры URL-адреса
calendar_id строка Идентификатор календаря.

Пример запроса

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

POST https://outlook.office.com/api/beta/me/events
Content-Type: application/json
{
  "Subject": "Plan summer company picnic",
  "Body": {
    "ContentType": "HTML",
    "Content": "Let's kick-start this event planning!"
  },
  "Start": {
      "DateTime": "2017-06-09T11:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "End": {
      "DateTime": "2017-06-09T12:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "Attendees": [
    {
      "EmailAddress": {
        "Address": "AdeleV@contoso.onmicrosoft.com",
        "Name": "Adele Vance"
      },
      "Type": "Required"
    },
    {
      "EmailAddress": {
        "Address": "AlexW@contoso.onmicrosoft.com",
        "Name": "Alex Wilber"
      },
      "Type": "Required"
    }
  ],
  "Location": {
    "DisplayName": "Conf Room 3; Fourth Coffee; Home Office",
    "LocationType": "Default"
  },
  "Locations": [
    {
      "DisplayName": "Conf Room 3",
    },
    {
      "DisplayName": "Fourth Coffee",
      "Address": {
        "Street": "4567 Main St",
        "City": "Redmond",
        "State": "WA",
        "CountryOrRegion": "US",
        "PostalCode": "32008"
      },
      "Coordinates": {
        "Latitude": 47.672,
        "Longitude": -102.103
      },
      "LocationType": "LocalBusiness"
    },
    {
      "DisplayName": "Home Office",
    }
  ]

}

Пример отклика

Код состояния: 201

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
    "@odata.id":"https://outlook.office.com/api/beta/Users('94447c6e-ea4c-494c-a9ed-d905e366c5cb@007e925e-fb5a-4f60-9cb6-58a21e692480')/Events('AAMkADNCYBXsvAAA=')",
    "@odata.etag":"W/\"SuFHwDRP1EeXJUopWbSLlgAAmBvk2g==\"",
    "Id":"AAMkADNCYBXsvAAA=",
    "CreatedDateTime":"2017-06-06T19:59:23.003773-07:00",
    "LastModifiedDateTime":"2017-06-06T19:59:24.8432785-07:00",
    "ChangeKey":"SuFHwDRP1EeXJUopWbSLlgAAmBvk2g==",
    "Categories":[

    ],
    "OriginalStartTimeZone":"Pacific Standard Time",
    "OriginalEndTimeZone":"Pacific Standard Time",
    "iCalUId":"040000008200E00074C5B7101A82E008000000000FD9CB103ADFD20100000000000000001000000026DB266A0E3C4A4FB15DC14FFFB1469D",
    "ReminderMinutesBeforeStart":15,
    "IsReminderOn":true,
    "HasAttachments":false,
    "Subject":"Plan summer company picnic",
    "BodyPreview":"Let's kick-start this event planning!",
    "Importance":"Normal",
    "Sensitivity":"Normal",
    "IsAllDay":false,
    "IsCancelled":false,
    "IsOrganizer":true,
    "ResponseRequested":true,
    "SeriesMasterId":null,
    "ShowAs":"Busy",
    "Type":"SingleInstance",
    "WebLink":"https://outlook.office365.com/owa/?itemid=AAMkADNCYBXsvAAA%3D&exvsurl=1&path=/calendar/item",
    "OnlineMeetingUrl":null,
    "ResponseStatus":{
        "Response":"Organizer",
        "Time":"0001-01-01T00:00:00Z"
    },
    "Body":{
        "ContentType":"HTML",
        "Content":"<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\nLet's kick-start this event planning!\r\n</body>\r\n</html>\r\n"
    },
    "Start":{
        "DateTime":"2017-06-09T11:00:00.0000000",
        "TimeZone":"Pacific Standard Time"
    },
    "End":{
        "DateTime":"2017-06-09T12:00:00.0000000",
        "TimeZone":"Pacific Standard Time"
    },
    "Location":{
        "DisplayName":"Conf Room 3; Fourth Coffee; Home Office",
        "LocationType":"Default"
    },
    "Locations":[
        {
            "DisplayName":"Conf Room 3",
            "LocationType":"Default"
        },
        {
            "DisplayName":"Fourth Coffee",
            "LocationType":"Default",
            "Address":{
                "Type":"Unknown",
                "Street":"4567 Main St",
                "City":"Redmond",
                "State":"WA",
                "CountryOrRegion":"US",
                "PostalCode":"32008"
            },
            "Coordinates":{
                "Latitude":47.672,
                "Longitude":-102.103
            }
        },
        {
            "DisplayName":"Home Office",
            "LocationType":"Default"
        }
    ],
    "Recurrence":null,
    "Attendees":[
        {
            "Type":"Required",
            "Status":{
                "Response":"None",
                "Time":"0001-01-01T00:00:00Z"
            },
            "EmailAddress":{
                "Name":"Adele Vance",
                "Address":"AdeleV@contoso.onmicrosoft.com"
            }
        },
        {
            "Type":"Required",
            "Status":{
                "Response":"None",
                "Time":"0001-01-01T00:00:00Z"
            },
            "EmailAddress":{
                "Name":"Alex Wilber",
                "Address":"AlexW@contoso.onmicrosoft.com"
            }
        }
    ],
    "Organizer":{
        "EmailAddress":{
            "Name":"Fanny Downs",
            "Address":"fannyd@contoso.onmicrosoft.com"
        }
    },
    "OnlineMeeting":null
}

Тип ответа

Новое событие.

По умолчанию ответ включает все свойства нового события. Используйте $select, чтобы указать только те свойства, которые вам нужны для лучшей производительности. Свойство идентификатора всегда возвращается.

Следующий пример включает только свойства Start и End нового события в ответе.

POST https://outlook.office.com/api/beta/me/events?$Select=Start,End

Обновление событий

Обновление события календаря

Минимальная требуемая область

Одно из следующих:

Измените событие. Будут изменены только указанные свойства. Если пользователь является организатором, всем участникам сервером будут отправлены обновления собрания.

PATCH https://outlook.office.com/api/beta/me/events/{event_id}
Обязательный параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события.

Укажите любые записываемые свойства события в тексте запроса.

PATCH https://outlook.office.com/api/beta/me/events/AAMkAGE1MFKPQWAAA=?$select=Location

Пример запроса

PATCH https://outlook.office.com/api/beta/me/events/AAMkAGE0M4v1OAAA=
Content-Type: application/json

{
  "Location": {
    "DisplayName": "Conference Rome",
    "LocationType": "ConferenceRoom"
  }
}

Пример отклика

Код состояния: 200

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGE0M4v1OAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeNheQ==\"",
  "Id": "AAMkAGE0M4v1OAAA=",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeNheQ==",
  "Categories": [],
  "CreatedDateTime": "2014-01-22T20:49:05.5657528Z",
  "LastModifiedDateTime": "2014-01-22T21:14:17.4886416Z",
  "Subject": "Discuss the Calendar REST API",
  "BodyPreview": "I think it will meet our requirements!",
  "Body": {
    "ContentType": "HTML",
    "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nI think it will meet our requirements!\r\n</body>\r\n</html>\r\n"
  },
  "Importance": "Normal",
  "HasAttachments": false,
  "Start": {
    "DateTime": "2014-02-02T18:00:00",
    "TimeZone": "Pacific Standard Time"
  },
  "End": {
    "DateTime": "2014-02-02T19:00:00",
    "TimeZone": "Pacific Standard Time"
  },
  "Location": {
    "DisplayName": "Conference Rome",
    "LocationType": "ConferenceRoom"
  },
  "Locations":[
    {
      "DisplayName":"Conference Rome",
      "LocationType":"ConferenceRoom"
    }
  ],
  "ShowAs": "Busy",
  "IsAllDay": false,
  "IsCancelled": false,
  "IsOrganizer": true,
  "ResponseRequested": true,
  "Type": "SingleInstance",
  "SeriesMasterId": null,
  "Attendees": [],
  "Recurrence": null,
  "OriginalEndTimeZone": "Pacific Standard Time",
  "OriginalStartTimeZone": "Pacific Standard Time",
  "Organizer": {
    "EmailAddress": {
      "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
      "Name": "alexd"
    }
  },
  "OnlineMeetingUrl": null
}

Тип ответа

Обновленное событие. Если пользователь является организатором, всем участникам сервером будут отправлены обновления собрания.

По умолчанию ответ включает все свойства обновленного события. Используйте $select, чтобы указать только те свойства, которые вам нужны для лучшей производительности. Свойство идентификатора всегда возвращается.

Ответ на события

Принятие события

Минимальная требуемая область

Одно из следующих:

Принятие указанного события.

POST https://outlook.office.com/api/beta/me/events/{event_id}/accept
Параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события. Обязательный.
Параметры тела
Comment строка Текст, включенный в ответ. Необязательный.
SendResponse boolean (логический) true Значение указывает, что организатору должен быть отправлен ответ. В противном случае используется значение false. Необязательный. Значение по умолчанию: true.

Пример запроса

POST https://outlook.office.com/api/beta/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/accept

Content-Type: application/json

{
  "Comment": "Great idea!",
  "SendResponse": "true"
}

Ответ

Ответ об успешном выполнении характеризуется наличием кода отклика HTTP 202 Accepted.

Предварительное принятие события

Минимальная требуемая область

Одно из следующих:

Предварительное принятие указанного события.

POST https://outlook.office.com/api/beta/me/events/{event_id}/tentativelyaccept
Параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события. Обязательный.
Параметры тела
Comment строка Текст, включенный в ответ. Необязательный.
SendResponse boolean (логический) true Значение указывает, что организатору должен быть отправлен ответ. В противном случае используется значение false. Необязательный. Значение по умолчанию: true.

Пример запроса

POST https://outlook.office.com/api/beta/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/tentativelyaccept

Content-Type: application/json

{
  "Comment": "I'll confirm later!",
  "SendResponse": "true"
}

Ответ

Ответ об успешном выполнении характеризуется наличием кода отклика HTTP 202 Accepted.

Отклонение события

Минимальная требуемая область

Одно из следующих:

Отклонение приглашения на указанное событие.

POST https://outlook.office.com/api/beta/me/events/{event_id}/decline
Параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события. Обязательный.
Параметры тела
Comment строка Текст, включенный в ответ. Необязательный.
SendResponse boolean (логический) true Значение указывает, что организатору должен быть отправлен ответ. В противном случае используется значение false. Необязательный. Значение по умолчанию: true.

Пример запроса

POST https://outlook.office.com/api/beta/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/decline

Content-Type: application/json

{
  "Comment": "Sorry, maybe next time!",
  "SendResponse": "true"
}

Ответ

Ответ об успешном выполнении характеризуется наличием кода отклика HTTP 202 Accepted.

Перенаправление событий (предварительная версия)

Минимальная требуемая область

Одно из следующих:

Это действие позволяет организатору или участнику события собрания перенаправить запрос собрания новому получателю.

Если событие собрания перенаправляется из почтового ящика Office 365 другому получателю, организатору отправляется уведомление о перенаправлении, а получатель добавляется в список организатора события собрания. Функция перенаправления из учетной записи Outlook.com недоступна.

POST https://outlook.office.com/api/beta/me/events('{event_id}')/forward
Обязательный параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события.
Параметры тела
Comment строка Добавляемый комментарий. Может быть пустой строкой.
ToRecipients Набор (Recipient) Список получателей, которым перенаправляется событие.

Пример запроса

POST https://outlook.office.com/api/beta/me/events('AQMkADJmMTU4AAAA=')/forward

Content-Type: application/json
{
  "ToRecipients":[
      {
        "EmailAddress": {
          "Address":"danas@contoso.onmicrosoft.com",
          "Name":"Dana Swope"
        }
      }
     ],
  "Comment": "Dana, hope you can make this meeting." 
}

Пример отклика

Status code: 202 Accepted

Удаление событий

Удаление события календаря

Минимальная требуемая область

Одно из следующих:

Переместите событие в папку "Удаленные" пользователя, который вошел в систему. Если событие является собранием, а пользователь, который вошел в систему, является организатором, все участники получат сообщение об отмене от сервера.

Это действие отличается от функции Отменить в том, что функция Удалить доступна для организатора и участников собрания. Если пользователь, который вошел в систему, является организатором собрания, он может просто отменить собрание без отправки сообщения об отмене участникам.

DELETE https://outlook.office.com/api/beta/me/events/{event_id}
Обязательный параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события.

Пример запроса

DELETE https://outlook.office.com/api/beta/me/events/AAMkAGE0M4v1OAAA=

Пример отклика

Status code: 204

Отмена событий (предварительная версия)

Минимальная требуемая область

Одно из следующих:

Это действие позволяет организатору собрания отправлять сообщение об отмене и отменять событие.

Действие перемещает событие в папку "Удаленные". Организатор может также отменить вхождение повторяющегося собрания, указав идентификатор события вхождения. При вызове этого действия участником отобразится следующее сообщение об ошибке (HTTP 400 — ошибочный запрос):

"Запрос не может быть выполнен. Отмену собрания может выполнить организатор."

Это действие отличается от функции Удалитьв том, что функция Отменить доступна только для организатора, позволяя отправлять участникам настраиваемое сообщение об отмене.

POST https://outlook.office.com/api/beta/me/events/{event_id}/Cancel
Обязательный параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события.
Параметры тела
Comment строка Комментарий об отмене, который отправляется всем участникам.

Пример запроса

POST https://outlook.office.com/api/beta/me/events/AAMkAGE0M4v1OAAA=/Cancel

Content-Type: application/json
{
  "Comment": "Cancelling this meeting as there is a time conflict for most folks."
}

Пример отклика

Status code: 202

Получение вложений

Можно получить коллекцию вложений или получить вложение.

Получение набора вложений

Минимальная требуемая область

Одно из следующих:

Получите вложения из определенного события.

Примечание

См. Параметры запроса OData для фильтрации, сортировки и параметров поискового вызова.

GET https://outlook.office.com/api/beta/me/events/{event_id}/attachments
Обязательный параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события.

Тип ответа

Набор вложений с типом FileAttachment, ItemAttachment или ReferenceAttachment.

Пример запроса

GET https://outlook.office.com/api/beta/me/events/AAMkAGI2NGTG9yAAA=/attachments

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events('AAMkAGI2NG9yAAA%3D')/Attachments",
    "value": [
        {
            "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2NGTG9yAAA=')/Attachments('AAMkAGI2NGLwydGuOzcHf1FBlo=')",
            "Id": "AAMkAGI2NGLwydGuOzcHf1FBlo=",
            "LastModifiedDateTime": "2014-10-22T00:30:26Z",
            "Name": "Company Party.docx",
            "ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
            "Size": 11647,
            "IsInline": false,
            "ContentId": null,
            "ContentLocation": null,
            "ContentBytes": "UEsDBBQABgAIAAAAIQDfpNJs...AAF4pAAAAAA=="
        }
    ]
}

Получение вложения

Минимальная требуемая область

Одно из следующих:

Получите вложение из определенного события.

GET https://outlook.office.com/api/beta/me/events/{event_id}/attachments/{attachment_id}
Обязательный параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события.
attachment_id строка Идентификатор вложения.

Примечание

См. Параметры запроса OData для фильтрации, сортировки и параметров поискового вызова.

Тип ответа

Запрошенное вложение файла, вложение элемента или вложение ссылки.

Пример запроса

В следующем примере выполняется получение вложения файла определенного события.

GET https://outlook.office.com/api/beta/me/events/AAMkAGI2WRAAADTG9yAAA=/attachments/AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events('AAMkAGI2WRAAADTG9yAAA%3D')/Attachments/$entity",
    "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
    "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2WRAAADTG9yAAA=')/Attachments('AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=')",
    "Id": "AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=",
    "LastModifiedDateTime": "2014-10-22T00:30:26Z",
    "Name": "Company Party.docx",
    "ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
    "Size": 11647,
    "IsInline": false,
    "ContentId": null,
    "ContentLocation": null,
    "ContentBytes": "UEsDBBQABgAIAAAAIQD...AAF4pAAAAAA=="
}

Пример запроса (вложение ссылки)

В следующем примере выполняется получение вложения ссылки на событие.

GET https://outlook.office.com/api/beta/me/events('AAMkAGE1Mbs88AADggYEcAAA=')/attachments('AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=')

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events('AAMkAGE1Mbs88AADggYEcAAA%3D')/attachments/$entity",
    "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
    "id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=",
    "lastModifiedDateTime": "2016-03-22T22:27:20Z",
    "name": "Hydrangea picture",
    "contentType": null,
    "size": 412,
    "isInline": false,
    "sourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
    "providerType": "oneDriveBusiness",
    "thumbnailUrl": null,
    "previewUrl": null,
    "permission": "edit",
    "isFolder": false
}

Пример запроса ($расширение вложений)

В следующем примере выполняется получение и расширение 2 вложений ссылок, встроенных в свойства события.

GET https://outlook.office.com/api/beta/me/events('AAMkAGE1Mbs88AADggYEcAAA=')?$expand=attachments

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events/$entity",
    "@odata.etag": "W/\"mODEKWhc/Um6lA3uPm7PPAAA4KZrtA==\"",
    "id": "AAMkAGE1Mbs88AADggYEcAAA=",
    "createdDateTime": "2016-03-22T22:19:58.1359352Z",
    "lastModifiedDateTime": "2016-03-22T22:39:09.9335289Z",
    "changeKey": "mODEKWhc/Um6lA3uPm7PPAAA4KZrtA==",
    "categories": [
    ],
    "originalStartTimeZone": "Pacific Standard Time",
    "originalEndTimeZone": "Pacific Standard Time",
    "responseStatus": {
        "response": "organizer",
        "time": "0001-01-01T00:00:00Z"
    },
    "iCalUId": "040000008200E00074C5B7101A82E008000000005895FCF78884D10100000000000000001000000099DD7CA6BCF37C4F9F7DAACCADDD6B89",
    "reminderMinutesBeforeStart": 15,
    "isReminderOn": true,
    "hasAttachments": true,
    "subject": "Plan Easter egg hunt!",
    "body": {
        "contentType": "html",
        "content": "<html>\r\n<body>\r\nLet's get organized for this weekend's gathering.\r\n</body>\r\n</html>\r\n"
    },
    "bodyPreview": "Let's get organized for this weekend's gathering.",
    "importance": "normal",
    "sensitivity": "normal",
    "start": {
        "dateTime": "2016-03-26T17:00:00.0000000",
        "timeZone": "UTC"
    },
    "end": {
        "dateTime": "2016-03-26T18:00:00.0000000",
        "timeZone": "UTC"
    },
    "location": {
        "displayName": "",
        "locationType": "default",
        "address": {
            "type": "unknown"
        },
        "coordinates": {
        }
    },
    "locations": [

    ],
    "isAllDay": false,
    "isCancelled": false,
    "isOrganizer": true,
    "recurrence": null,
    "responseRequested": true,
    "seriesMasterId": null,
    "showAs": "busy",
    "type": "singleInstance",
    "attendees": [
        {
            "status": {
                "response": "none",
                "time": "0001-01-01T00:00:00Z"
            },
            "type": "required",
            "emailAddress": {
                "name": "Randi Welch",
                "address": "randiw@contoso.onmicrosoft.com"
            }
        }
    ],
    "organizer": {
        "emailAddress": {
            "name": "Dana Swope",
            "address": "danas@contoso.onmicrosoft.com"
        }
    },
    "webLink": "https://outlook.office.com/owa/?ItemID=AAMkAGE1Mbs88AADggYEcAAA%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
    "onlineMeetingUrl": null,
    "attachments@odata.context": "https://outlook.office.com/api/beta/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events('AAMkAGE1Mbs88AADggYEcAAA%3D')/attachments",
    "attachments": [
        {
            "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
            "id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=",
            "lastModifiedDateTime": "2016-03-22T22:27:20Z",
            "name": "Hydrangea picture",
            "contentType": null,
            "size": 412,
            "isInline": false,
            "sourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
            "providerType": "oneDriveBusiness",
            "thumbnailUrl": null,
            "previewUrl": null,
            "permission": "edit",
            "isFolder": false
        },
        {
            "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
            "id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAE1rHHth7YNLlR9WsgnODy0=",
            "lastModifiedDateTime": "2016-03-22T22:39:09Z",
            "name": "Koala picture",
            "contentType": null,
            "size": 382,
            "isInline": false,
            "sourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/koala.jpg",
            "providerType": "oneDriveBusiness",
            "thumbnailUrl": null,
            "previewUrl": null,
            "permission": "edit",
            "isFolder": false
        }
    ]
}

Пример запроса ($расширение вложенных элементов)

В следующем примере выполняется получение вложенного элемента.

GET https://outlook-sdf.office.com/api/beta/me/events/AAMkAGE1Mbs88AADUv0uFAAA=/attachments/AAMkAGE1Mbs88AADUv0uFAAABEgAQAL53d0u3BKBJmCxKVxZKBZ8=$expand=Microsoft.OutlookServices.ItemAttachment/Item

Пример отклика

Status code: 200

{
    "Id": "AAMkAGE1Mbs88AADUv0uFAAABEgAQAL53d0u3BKBJmCxKVxZKBZ8=",
    "LastModifiedDateTime": "2017-04-25T20:05:55Z",
    "Name": "RE: Changes to GetConditionMetadata handler",
    "ContentType": null,
    "Size": 78927,
    "IsInline": false,
    "Item": {
        "Id": "", 
        "Name": "How to retrieve item attachment using Outlook REST API",
        "ContentType": message/rfc822,
        "Size": 71094,
        "IsInline": false,
        "LastModifiedDateTime": "2015-09-24T05:57:59Z",
    }
}

Создание вложений

Можно создать вложение файла или создать вложение элемента для события.

Создание вложения файла

Минимальная требуемая область

Одно из следующих:

Добавьте вложение файла в событие.

POST https://outlook.office.com/api/beta/me/events/{event_id}/attachments
Обязательный параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события.
Параметры тела
@odata.type строка #Microsoft.OutlookServices.FileAttachment
Имя строка Имя вложения.
ContentBytes двоичный Файл для вложения.

Тип ответа

Новое вложение файла.

Создание вложения элемента

Минимальная требуемая область

Одно из следующих:

Добавьте вложение элемента в событие.

POST https://outlook.office.com/api/beta/me/events/{event_id}/attachments
Обязательный параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события.
Параметры тела
@odata.type строка #Microsoft.OutlookServices.ItemAttachment
Имя строка Имя вложения.
Элемент Объект Сообщение, Событие или Контакт. Элемент для вложения.

Тип ответа

Новое вложение элемента.

Создание вложения ссылки

Минимальная требуемая область

https://outlook.office.com/calendars.readwrite

Добавьте вложение ссылки в событие.

POST https://outlook.office.com/api/beta/me/events/{event_id}/attachments
Обязательный параметр Тип Описание
Параметры URL-адреса
event_id Строка Идентификатор события.
Параметры тела
@odata.type Строка #Microsoft.OutlookServices.ReferenceAttachment
Имя Строка Отображаемое имя вложения. Обязательный.
SourceUrl Строка URL для получения содержимого вложения. Если это URL-адрес на папку, то для надлежащего отображения папки в Outlook или Outlook в Интернете установите для параметра IsFolder значение true. Обязательный.

Укажите параметры Name и SourceUrl и любые записываемые свойства вложения ссылки в тексте запроса.

Тип ответа

Вложение ссылки.

Пример запроса

В следующем примере выполняется добавление вложения ссылки в существующее событие. Вложение представляет собой ссылку на файл в OneDrive для бизнеса.

POST https://outlook.office.com/api/beta/me/events('AAMkAGE1Mbs88AADggYEcAAA=')/attachments
Content-Type: application/json

{
    "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment", 
    "Name": "Hydrangea picture", 
    "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg", 
    "ProviderType": "oneDriveBusiness", 
    "Permission": "Edit", 
    "IsFolder": "False" 
 }

Пример отклика

Код состояния: 201 Создано

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events('AAMkAGE1Mbs88AADggYEcAAA%3D')/attachments/$entity",
    "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
    "Id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=",
    "LastModifiedDateTime": "2016-03-22T22:27:20Z",
    "Name": "Hydrangea picture",
    "ContentType": null,
    "Size": 412,
    "IsInline": false,
    "SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
    "ProviderType": "oneDriveBusiness",
    "ThumbnailUrl": null,
    "PreviewUrl": null,
    "Permission": "edit",
    "IsFolder": false
}

Удаление вложений

Удаление вложения события

Минимальная требуемая область

Одно из следующих:

Удалите указанное вложение события. Вложением может быть вложение файла, вложение элемента или вложение ссылки.

DELETE https://outlook.office.com/api/beta/me/events/{event_id}/attachments/{attachment_id}
Обязательный параметр Тип Описание
Параметры URL-адреса
event_id строка Идентификатор события.
attachment_id строка Идентификатор вложения.

Пример запроса

DELETE https:/outlook.office.com/api/beta/me/events/AAMkAGE0MG4v1OAAA=/attachments/AAMkAGITG9yAAA=

Пример отклика

Status code: 204

Получение напоминаний

Получите список напоминаний событий между двумя датами и временем из календаря.

Минимальная требуемая область

Одно из следующих:

GET https://outlook.office.com/api/beta/me/ReminderView(StartDateTime='{DateTime}',EndDateTime='{DateTime}')
Обязательный параметр Тип Описание
Параметры заголовка
Prefer: outlook.timezone Часовой пояс по умолчанию для событий в ответе.
Параметры URL-адреса
StartDateTime строка Дата и время начала для отображаемых напоминаний.
EndDateTime строка Дата и время завершения для отображаемых напоминаний.

Используйте заголовок Prefer: outlook.timezone для указания часового пояса, который будет использоваться для времени начала и завершения события в ответе. Если событие создано с применением другого часового пояса, время начала и завершения будет изменено в соответствии с указанным часовым поясом.

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

Функция повторного напоминания

Используйте функцию повторного напоминания, чтобы отложить напоминание до более позднего времени.

Минимальная требуемая область

Одно из следующих:

POST https://outlook.office.com/api/beta/me/Events('{id}')/SnoozeReminder
Необходимые параметры Тип Описание
Параметры URL-адреса
id строка Идентификатор события.
Параметры тела
NewReminderTime DateTimeTimeZone Новые дата и время для активации напоминания.

Отклонение напоминаний

Отклонение активированного напоминания.

Минимальная требуемая область

Одно из следующих:

POST https://outlook.office.com/api/beta/me/Events({id})/DismissReminder
Необходимые параметры Тип Описание
Параметры URL-адреса
id строка Идентификатор события.

Получение календарей

Можно получить набор календарей или календарь.

Получить набор календарей

Минимальная требуемая область

Одно из следующих:

Получить все календари пользователя (calendars) или получить календари из определенной группы календарей.

GET https://outlook.office.com/api/beta/me/calendars
GET https://outlook.office.com/api/beta/me/calendargroups/{calendar_group_id}/calendars

Примечание

См. Параметры запроса OData для фильтрации, сортировки и параметров поискового вызова.

Обязательный параметр Тип Описание
Параметры URL-адреса
calender_group_id строка Идентификатор группы календарей.

Пример запроса

GET https://outlook.office.com/api/beta/me/calendars

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Calendars",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGI2TGuLAAA=')",
            "Id": "AAMkAGI2TGuLAAA=",
            "Name": "Calendar",
            "Color": "Auto",
            "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
            "IsDefaultCalendar": true,
            "CanShare":true,
            "CanViewPrivateItems":true,
            "IsShared":false,
            "IsSharedWithMe":false,
            "CanEdit":true,
            "Owner":{
                "Name":"Fanny Downs",
                "Address":"fannyd@adatum.onmicrosoft.com"
            }
        }
    ]
}

Получить календарь

Минимальная требуемая область

Одно из следующих:

Получите календарь по идентификатору. Можно получить основной календарь пользователя с помощью конечной точки ../me/calendar.

GET https://outlook.office.com/api/beta/me/calendars/{calendar_id}

Примечание

См. Параметры запроса OData для фильтрации, сортировки и параметров поискового вызова.

Обязательный параметр Тип Описание
Параметры URL-адреса
calendar_id строка Идентификатор календаря.

Пример запроса

GET https://outlook.office.com/api/beta/me/calendars/AAMkAGI2TGuLAAA=

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Calendars/$entity",
    "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGI2TGuLAAA=')",
    "Id": "AAMkAGI2TGuLAAA=",
    "Name": "Calendar",
    "Color": "Auto",
    "IsDefaultCalendar": true,
    "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
    "CanShare":true,
    "CanViewPrivateItems":true,
    "IsShared":false,
    "IsSharedWithMe":false,
    "CanEdit":true,
    "Owner":{
        "Name":"Fanny Downs",
        "Address":"fannyd@adatum.onmicrosoft.com"
    }
}

Тип ответа

Запрошенный календарь.

Создание календарей

Создание календаря

Минимальная требуемая область

Одно из следующих:

Создайте календарь в группе календарей по умолчанию с помощью ярлыка ../me/calendars или в определенной группе календарей путем размещения в конечной точке группы calendars.

POST https://outlook.office.com/api/beta/me/calendars
POST https://outlook.office.com/api/beta/me/calendargroups/{calendar_group_id}/calendars
Обязательный параметр Тип Описание
Параметры URL-адреса
calender_group_id строка Идентификатор группы календарей, если выполняется получение календарей из определенной группы.
Параметры тела
Имя строка Имя нового календаря.

Пример запроса

POST https://outlook.office.com/api/beta/me/calendars
Content-Type: application/json

{
  "Name": "Volunteer"
}

Пример отклика

Код состояния: 201

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Calendars/$entity",
    "@odata.id":"https://outlook.office.com/api/beta/Users('266efe5a-0fd7-4edd-877b-b2d1e561f193@ae01a323-3934-4475-a32d-af1274312bb0')/Calendars('AAMkADJmMVAAA=')",
    "Id":"AAMkADJmMVAAA=",
    "Name":"Volunteer",
    "Color":"Auto",
    "IsDefaultCalendar":false,
    "ChangeKey":"DxYSthXJXEWwAQSYQnXvIgAAIxGttg==",
    "CanShare":true,
    "CanViewPrivateItems":true,
    "IsShared":false,
    "IsSharedWithMe":false,
    "CanEdit":true,
    "Owner":{
        "Name":"Fanny Downs",
        "Address":"fannyd@adatum.onmicrosoft.com"
    }
}

Тип ответа

Новый календарь.

Обновление календарей

Обновление календаря

Минимальная требуемая область

Одно из следующих:

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

PATCH https://outlook.office.com/api/beta/me/calendars/{calendar_id}
Обязательный параметр Тип Описание
Параметры URL-адреса
calendar_id строка Идентификатор календаря.

Пример запроса

PATCH https://outlook.office.com/api/beta/me/calendars/AAMkAGE4xLIAAA=
Content-Type: application/json

{
  "Name": "Social events"
}

Пример отклика

Код состояния: 200

{
    "@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Calendars/$entity",
    "@odata.id":"https://outlook.office.com/api/beta/Users('266efe5a-0fd7-4edd-877b-b2d1e561f193@ae01a323-3934-4475-a32d-af1274312bb0')/Calendars('AAMkADJmMVAAA=')",
    "Id":"AAMkADJmMVAAA=",
    "Name":"Social events",
    "Color":"Auto",
    "IsDefaultCalendar":false,
    "ChangeKey":"DxYSthXJXEWwAQSYQnXvIgAAIxGttg==",
    "CanShare":true,
    "CanViewPrivateItems":true,
    "IsShared":false,
    "IsSharedWithMe":false,
    "CanEdit":true,
    "Owner":{
        "Name":"Fanny Downs",
        "Address":"fannyd@adatum.onmicrosoft.com"
    }
}

Тип ответа

Обновленный календарь.

Удаление календарей

Удаление календаря

Минимальная требуемая область

Одно из следующих:

DELETE https://outlook.office.com/api/beta/me/calendars/{calendar_id}
Обязательный параметр Тип Описание
Параметры URL-адреса
calendar_id строка Идентификатор календаря.

Пример запроса

DELETE https://outlook.office.com/api/beta/me/calendars/AAMkAGE4xLIAAA=

Пример отклика

Status code: 204

Получение групп календарей

Можно получить набор группы календарей или получить группу календарей.

Примечание

Outlook.com поддерживает только группу календарей по умолчанию, которая доступна по ../me/calendars ссылке.

Получение набора группы календарей

Минимальная требуемая область

Одно из следующих:

Получение групп календарей в почтовом ящике.

GET https://outlook.office.com/api/beta/me/calendargroups

Примечание

См. Параметры запроса OData для фильтрации, сортировки и параметров поискового вызова.

Пример запроса

GET https://outlook.office.com/api/beta/me/calendargroups

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarGroups",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuKAAA=')",
            "Id": "AAMkAGI2TGuKAAA=",
            "Name": "My Calendars",
            "ClassId": "0006f0b7-0000-0000-c000-000000000046",
            "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+g=="
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuMAAA=')",
            "Id": "AAMkAGI2TGuMAAA=",
            "Name": "Other Calendars",
            "ClassId": "0006f0b8-0000-0000-c000-000000000046",
            "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0/A=="
        }
    ]
}

Тип ответа

Запрошенный набор группы календарей.

Получение группы календарей

Минимальная требуемая область

Одно из следующих:

Получите группу календарей по идентификатору.

GET https://outlook.office.com/api/beta/me/calendargroups/{calendar_group_id}

Примечание

См. Параметры запроса OData для фильтрации, сортировки и параметров поискового вызова.

Обязательный параметр Тип Описание
Параметры URL-адреса
calendar_group_id строка Идентификатор группы календарей.

Пример запроса

GET https://outlook.office.com/api/beta/me/calendargroups/AAMkAGI2TGuKAAA=

Пример отклика

Код состояния: 200

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarGroups/$entity",
    "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuKAAA=')",
    "Id": "AAMkAGI2TGuKAAA=",
    "Name": "My Calendars",
    "ClassId": "0006f0b7-0000-0000-c000-000000000046",
    "ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+g=="
}

Тип ответа

Запрошенная группа календарей.

Создание групп календарей

Создание группы календарей. Имя является единственным записываемым свойством группы календарей.

Примечание

Outlook.com поддерживает только группу календарей по умолчанию, которая доступна по ../me/calendars ссылке. Не удастся создать другую группу календарей в Outlook.com.

Создание группы календарей

Минимальная требуемая область

Одно из следующих:

POST https://outlook.office.com/api/beta/me/calendargroups
Обязательный параметр Тип Описание
Параметр URL-адреса
Параметры тела
Имя строка Имя группы календарей.

Пример запроса

POST https://outlook.office.com/api/beta/me/calendargroups
Content-Type: application/json

{
  "Name": "Birthdays"
}

Пример отклика

Код состояния: 201

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarGroups/$entity",
  "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGE0M4xLGAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Rw==\"",
  "Id": "AAMkAGE0M4xLGAAA=",
  "Name": "Birthdays",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Rw==",
  "ClassId": "4d969bba-8942-42a0-ae33-c7d4410d1e11"
}

Тип ответа

Новая группа календарей.

Обновление групп календарей

Обновление группы календарей

Минимальная требуемая область

Одно из следующих:

Измените имя группы календарей. Имя является единственным записываемым свойством группы календарей.

PATCH https://outlook.office.com/api/beta/me/calendargroups/{calendar_group_id}
Обязательный параметр Тип Описание
Параметры URL-адреса
calendar_group_id строка Идентификатор группы календарей.
Параметры тела
Имя строка Имя обновленной группы календарей.

Пример запроса

PATCH https://outlook.office.com/api/beta/me/calendargroups/AAMkAGE0M4xLGAAA=
Content-Type: application/json

{
  "Name": "Holidays"
}

Пример отклика

{
  "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarGroups/$entity",
  "@odata.id": "https://https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGE0MGM4xLGAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SA==\"",
  "Id": "AAMkAGE0MGM4xLGAAA=",
  "Name": "Holidays",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SA==",
  "ClassId": "4d969bba-8942-42a0-ae33-c7d4410d1e11"
}

Тип ответа

Обновленная группа календарей.

Удаление групп календарей

Примечание

Outlook.com поддерживает только группу календарей по умолчанию, которая доступна по ../me/calendars ссылке. Не удаляйте эту группу календарей.

Удаление группы календарей

Минимальная требуемая область

Одно из следующих:

DELETE https://outlook.office.com/api/beta/me/calendargroups/{calendar_group_id}
Обязательный параметр Тип Описание
Параметры URL-адреса
calendar_group_id строка Идентификатор группы календарей.

Пример запроса

DELETE https://outlook.office.com/api/beta/me/calendargroups/AAMkAGE0MGM4xLGAAA=

Пример отклика

Status code: 204

Дальнейшие действия

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

Или узнайте больше об использовании платформы Office 365 здесь: