Partilhar via


Referência da API REST de Calendário do Outlook (versão 2.0)

Aplica-se a: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com

A API de Calendário fornece acesso a dados de eventos, calendários e grupos de calendários protegidos pelo Active Directory do Azure no Office 365 e a dados semelhantes nas contas da Microsoft especificamente nestes domínios: Hotmail.com, Live.com, MSN.com, Outlook.com e Passport.com.

Observação

  • A exceção é a API para encontrar horários de reunião, que se aplica somente a caixas de correio do Office 365 (no Azure AD) e não a contas da Microsoft.
  • Para simplificar a referência, o restante deste artigo usa o Outlook.com para incluir esses domínios de conta da Microsoft.

Não tem interesse na v2.0 da API? No tabela de conteúdo à esquerda, vá para a seção Referência da API REST do Office 365 e selecione a versão desejada.

Todas as operações da API de Calendário

Operações de evento

Um evento representa um compromisso ou reunião no calendário do usuário. Um evento pode ser um mestre da série (para eventos recorrentes), uma ocorrência, uma única instância ou uma exceção.

Operações de calendário

Um calendário funciona como um contêiner para eventos. Um usuário pode ter vários calendários. No Office 365, cada calendário pode ser atribuído a um grupo de calendários.

Operações do grupo de calendário

Grupos de calendário são uma maneira de organizar vários calendários. Os usuários podem adicionar vários calendários em um único grupo de calendários no Outlook ou no Outlook Web App. Isso facilita a exibição rápida de todos os calendários dentro do grupo.

Observação

O Outlook.com tem suporte apenas para o grupo de calendários padrão que é acessível pelo atalho ../me/calendars. Você não pode excluir esse grupo de calendários ou criar outro grupo de calendários.

Consulte também

Uso da API REST de Calendário

Autenticação

Como outra API REST do Outlook, para cada solicitação à API de Calendário, você deve incluir um token de acesso válido. A obtenção de um token de acesso exige que você se registre e identifique seu aplicativo, e obtenha a autorização adequada.

Você pode saber mais sobre algumas opções simplificadas de registro e autorização. Tenha isso em mente ao prosseguir com as operações específicas na API de Calendário.

Escopos para acessar calendários compartilhados

Os calendários do Office 365 e do Outlook.com oferecem suporte ao compartilhamento. Um usuário que criou um calendário pode compartilhar o calendário com outros usuários. Os seguintes escopos são necessários para acessar um calendário compartilhado com esse usuário:

  • Para acesso de leitura: https://outlook.office.com/calendars.read.shared
  • Para acesso de leitura/gravação: https://outlook.office.com/calendars.readwrite.shared

Versão da API

A API REST de Calendário é suportada em todas as versões da API REST do Outlook. A funcionalidade pode variar dependendo da versão específica.

Usuário de destino

As solicitações da API de Calendário são sempre realizadas em nome do usuário atual.

Veja Usar a API REST do Outlook para obter mais informações comuns a todos os subconjuntos da API REST do Outlook.

Obter eventos

Obtenha uma coleção de eventos ou um evento.

Um corpo de evento pode estar em texto ou HTML.

Você pode usar o cabeçalho Prefer: outlook.body-content-type para especificar o formato desejado retornado na propriedade Body em uma solicitação GET:

  • Especifique Prefer: outlook.body-content-type="text" para obter um corpo de evento retornado em formato de texto.
  • Especifique Prefer: outlook.body-content-type="html" ou apenas pule o cabeçalho para retornar o corpo de evento no formato HTML.

Se você especificar um dos cabeçalhos, a resposta incluirá o cabeçalho Preference-Applied correspondente como confirmação:

  • Para solicitações de formato de texto: Preference-Applied: outlook.body-content-type="text"
  • Para solicitações de formato HTML: Preference-Applied: outlook.body-content-type="html"

Todas as operações que recebem eventos de calendário podem usar o cabeçalho HTTP Prefer: outlook.timezone para especificar o fuso horário dos horários de início e término na resposta. Por exemplo, o cabeçalho Prefer: outlook.timezone define os horários de início e término na resposta como Hora Oficial do Leste dos EUA.

Prefer: outlook.timezone="Eastern Standard Time"

Se você não especificar o cabeçalho Prefer: outlook.timezone, os horários de início e término na resposta retornarão para UTC. Confira esta lista para ver os nomes de fuso horário suportados.

Você pode usar as propriedades OriginalStartTimeZone e OriginalEndTimeZone no recurso Evento para descobrir o fuso horário usado quando o evento foi criado.

Obter uma visão de calendário

Escopo mínimo necessário

Uma das seguintes opções:

Obtenha as ocorrências, exceções e instâncias únicas de eventos em uma visão de calendário definida por um intervalo de tempo, a partir do calendário principal do usuário (../me/calendarview) ou de um calendário diferente.

GET https://outlook.office.com/api/v2.0/me/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
GET https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
Parâmetro obrigatório Tipo Descrição
Parâmetros do cabeçalho
Prefer: outlook.timezone O fuso horário padrão para eventos na resposta.
Parâmetros de URL
calendar_id cadeia de caracteres ID do calendário, se você obtiver uma visão de um calendário específico.
start_datetime datetimeoffset A data e o horário em que o evento inicia.
end_datetime datetimeoffset A data e o horário em que o evento termina.

Use o cabeçalho Prefer: outlook.timezone para especificar o fuso horário a ser usado para os horários de início e término do evento na resposta. Se o evento foi criado em um fuso horário diferente, os horários de início e término serão ajustados para o fuso horário especificado.

Confira esta lista para ver os nomes de fuso horário suportados. Se o cabeçalho Prefer: outlook.timezone não estiver especificado, os horários de início e término retornarão para UTC.

Observação

Por padrão, cada evento na resposta inclui todas as suas propriedades. Use $select para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada. Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.

Por exemplo, obtenha a visão de calendário para o mês de outubro, retornando apenas a propriedade Subject para cada evento. Se o cabeçalho Prefer: outlook.timezone não estiver incluído na solicitação, o fuso horário será UTC.

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

Tipo de resposta

Os eventos expandidos no intervalo de tempo especificado.

Obter eventos mestre da série e únicos

Escopo mínimo necessário

Uma das seguintes opções:

Obter uma coleção de eventos mestre de série e de instância única do calendário principal do usuário (../me/events) ou de um calendário diferente. Para obter instâncias de evento expandidas, você pode obter a visão de calendário ou obter as instâncias de um evento.

GET https://outlook.office.com/api/v2.0/me/events
GET https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}/events
Parâmetro obrigatório Tipo Descrição
Parâmetros do cabeçalho
Prefer: outlook.timezone O fuso horário padrão para eventos na resposta.
Parâmetros de URL
calendar_id cadeia de caracteres ID do calendário, se você estiver obtendo eventos de um calendário específico.

Use o cabeçalho Prefer: outlook.timezone para especificar o fuso horário a ser usado para os horários de início e término do evento na resposta. Se o evento foi criado em um fuso horário diferente, os horários de início e término serão ajustados para o fuso horário especificado.

Confira esta lista para ver os nomes de fuso horário suportados. Se o cabeçalho Prefer: outlook.timezone não estiver especificado, os horários de início e término retornarão para UTC.

Observação

Cada evento na resposta inclui todas as suas propriedades. Use $select para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada. Veja o próximo exemplo. Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.

O exemplo a seguir mostra como usar $select para especificar retornando apenas as propriedades Subject, Organizer, Start e End de cada evento na resposta. Veja a primeira resposta de exemplo em Obter um evento (REST) para obter uma lista completa das propriedades que serão retornadas para um evento se você não usar $select.

Exemplo de solicitação

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

Exemplo de resposta

{
    "@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events(Subject,Organizer,Start,End)",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI28tEyDAAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAA/LpDWw==\"",
            "Id": "AAMkAGI28tEyDAAA=",
            "Subject": "Scrum",
            "Start": {
                "DateTime": "2015-11-02T17:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2015-11-02T17:30:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "user0TestUser",
                    "Address": "user0@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI28tEyCAAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAA/LpDWg==\"",
            "Id": "AAMkAGI28tEyCAAA=",
            "Subject": "team lunch",
            "Start": {
                "DateTime": "2015-11-02T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2015-11-03T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "user0TestUser",
                    "Address": "user0@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2ADTG93AAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x49w==\"",
            "Id": "AAMkAGI2G93AAA=",
            "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": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG92AAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x49g==\"",
            "Id": "AAMkAGI2TG92AAA=",
            "Subject": "Daily Team Meeting",
            "Start": {
                "DateTime": "2014-10-13T18:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2014-10-13T18:30:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG91AAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x47Q==\"",
            "Id": "AAMkAGI2TG91AAA=",
            "Subject": "Rob:Alex 1:1",
            "Start": {
                "DateTime": "2014-10-15T16:30:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": "2014-10-15T17:30:00Z",
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG90AAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x46g==\"",
            "Id": "AAMkAGI2TG90AAA=",
            "Subject": "Thanksgiving Holiday",
            "Start": {
                "DateTime": "2015-11-26T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2015-11-27T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG9zAAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x46Q==\"",
            "Id": "AAMkAGI2TG9zAAA=",
            "Subject": "Thanksgiving Holiday",
            "Start": {
                "DateTime": "2014-11-27T00:00:00"
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2014-11-28T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG9yAAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x49Q==\"",
            "Id": "AAMkAGI2TG9yAAA=",
            "Subject": "New Year's Day Holiday",
            "Start": {
                "DateTime": "2015-01-01T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2015-01-02T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        },
        {
            "@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG9xAAA=')",
            "@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x45w==\"",
            "Id": "AAMkAGI2TG9xAAA=",
            "Subject": "Christmas Holiday",
            "Start": {
                "DateTime": "2014-12-25T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "End": {
                "DateTime": "2014-12-26T00:00:00",
                "TimeZone": "Pacific Standard Time"
            },
            "Organizer": {
                "EmailAddress": {
                    "Name": "Alex D",
                    "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
                }
            }
        }
    ]
}

Obter instâncias de evento

Escopo mínimo necessário

Uma das seguintes opções:

Você pode obter as instâncias (ocorrências) de um evento para um intervalo de tempo especificado. Se o evento for um tipo SeriesMaster, isso retornará as ocorrências e exceções do evento no intervalo de tempo especificado.

GET https://outlook.office.com/api/v2.0/me/events/{event_id}/instances?startDateTime={start_datetime}&endDateTime={end_datetime}
Parâmetro obrigatório Tipo Descrição
Parâmetros do cabeçalho
Prefer: outlook.timezone O fuso horário padrão para eventos na resposta.
Parâmetros de URL
event_id cadeia de caracteres ID do evento.
start_datetime datetimeoffset A data e o horário em que o evento inicia.
end_datetime datetimeoffset A data e o horário UTC em que o evento termina.

Use o cabeçalho Prefer: outlook.timezone para especificar o fuso horário a ser usado para os horários de início e término do evento na resposta. Se o evento foi criado em um fuso horário diferente, os horários de início e término serão ajustados para o fuso horário especificado.

Confira esta lista para ver os nomes de fuso horário suportados. Se o cabeçalho Prefer: outlook.timezone não estiver especificado, os horários de início e término retornarão para UTC.

Tipo de resposta

A coleção de eventos solicitada.

Observação

Por padrão, cada evento na resposta inclui todas as suas propriedades. Use $select para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada. Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.

Por exemplo, obtenha as instâncias de um evento específico para o mês de outubro e inclua apenas as propriedades Subject, Start e End de cada instância:

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

Obter um evento

Escopo mínimo necessário

Uma das seguintes opções:

Obtenha um evento por ID.

GET https://outlook.office.com/api/v2.0/me/events/{event_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros do cabeçalho
Prefer: outlook.timezone O fuso horário padrão para eventos na resposta.
Parâmetros de URL
event_id cadeia de caracteres ID do evento.

Use o cabeçalho Prefer: outlook.timezone para especificar o fuso horário a ser usado para os horários de início e término do evento na resposta. Se o evento foi criado em um fuso horário diferente, os horários de início e término serão ajustados para o fuso horário especificado.

Confira esta lista para ver os nomes de fuso horário suportados. Se o cabeçalho Prefer: outlook.timezone não estiver especificado, os horários de início e término retornarão para UTC.

Exemplo de solicitação

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

Exemplo de resposta

    {
        "@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",
            "Address": null
        },
        "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
        }
    }

Tipo de resposta

O evento solicitado.

Observação

Por padrão, a resposta inclui todas as propriedades do evento. Use $select para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada. Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.

O exemplo a seguir mostra como usar $select para especificar retornando apenas as propriedades Subject, Organizer, Start e End do evento.

Exemplo de solicitação

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

Exemplo de resposta

    {
        "@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"
            }
        }
    }

Sincronizar eventos

Escopo mínimo necessário

Uma das seguintes opções:

Sincronize e obtenha eventos novos, atualizados ou excluídos em um intervalo de tempo especificado a partir do calendário principal do usuário (../me/calendarview) ou de um calendário diferente. Esse conjunto de eventos em um intervalo de tempo também é conhecido como visão de calendário. Os eventos retornados podem incluir ocorrências e exceções de uma série recorrente e instâncias únicas.

A sincronização de uma visão de calendário normalmente requer uma série de duas ou mais solicitações de sincronização, cada qual definida como uma chamada GET. Para sincronizar uma visão de calendário, use o método GET da mesma forma que você obtém uma visão de calendário, com a diferença que você deve incluir determinados cabeçalhos de solicitação e deltaToken ou um skipToken quando for apropriado.

Cabeçalhos de solicitação

  • Você deve especificar o cabeçalho "Prefer: odata.track-changes" em todas as solicitações de sincronização, exceto naquelas que incluem um skipToken que é retornado de uma solicitação de sincronização anterior. Na primeira resposta, procure o cabeçalho Preference-Applied: odata.track-changes para confirmar que o recurso suporta a sincronização antes de continuar. (Mais informações sobre um skipToken nos dados de exemplo de segunda resposta abaixo.)

  • Você pode especificar o cabeçalho "Prefer: odata.maxpagesize={x}" para indicar o número máximo de eventos que a solicitação de sincronização retorna.

Veja uma típica série de sincronização de eventos em uma visão de calendário:

  1. Faça a solicitação GET inicial com o cabeçalho obrigatório Prefer: odata.track-changes. A resposta inicial a uma solicitação de sincronização sempre retorna um deltaToken. (A segunda solicitação GET e as solicitações seguintes diferem da primeira solicitação GET, incluindo um deltaToken ou um skipToken recebido em uma resposta anterior.)

  2. Se a primeira resposta retornar o cabeçalho Preference-Applied: odata.track-changes, você poderá prosseguir com a sincronização.

    • Faça uma segunda solicitação GET. Especifique o cabeçalho Prefer: odata.track-changes e o deltaToken retornado do primeiro GET para determinar se há algum evento adicional. A segunda solicitação retornará eventos adicionais e um skipToken se houver mais eventos disponíveis, ou um deltaToken se o último evento tiver sido sincronizado. Nesse caso, você pode parar.

    • Continue a sincronização enviando uma chamada GET e incluindo um skipToken retornado da chamada anterior. Pare quando você obtiver uma resposta final que contenha o cabeçalho @odata.deltaLink com um deltaToken novamente, indicando que a sincronização está concluída.

Veja a sintaxe das chamadas iniciais e subsequentes em uma série de sincronização.

Sincronizar no calendário padrão

Solicitação inicial:

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

Segunda ou primeira solicitação de uma série seguinte:

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

Terceira ou solicitação subsequente na mesma série:

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

Sincronizar em um calendário específico

Solicitação inicial:

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

Segunda ou primeira solicitação de uma série seguinte:

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

Terceira ou solicitação subsequente na mesma série:

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

Parâmetros

Parâmetro Tipo Descrição
Parâmetros de URL
user_context cadeia de caracteres O contexto do usuário. Você pode usar o valor 'me' para indicar o contexto do usuário atual. Você também pode usar o formato users/{upn}, no qual upn é o nome principal do usuário. Geralmente, é o endereço de email do usuário.
calendar_id cadeia de caracteres ID do calendário, se você obtiver uma visão de um calendário específico.
start_datetime datetimeoffset A data e o horário em que o evento inicia.
end_datetime datetimeoffset A data e o horário em que o evento termina.
delta_token cadeia de caracteres A sequência de caracteres deltaToken retornada como parte do valor de @odata.deltaLink na resposta de sincronização anterior.
skip_token cadeia de caracteres A cadeia de caracteres skipToken retornada como parte do valor de @odata.nextLink na resposta de sincronização anterior.

Observação

  • Ao especificar "Prefer: odata.track-changes" na solicitação inicial, se a resposta suportar a sincronização, a resposta incluirá "Preference-applied: odata.track-changes" no cabeçalho.
  • Se você tentar sincronizar um recurso que não é suportado ou se essa não for a solicitação de sincronização inicial, você não verá o cabeçalho "Preference-applied" na resposta.
  • Você pode alterar a janela de tempo de mudança alterando os parâmetros de consulta startdatetime e enddatetime.
  • Cada evento na resposta inclui todas as suas propriedades.
  • Para uma série recorrente, uma resposta de sincronização inclui todo o evento para os eventos mestre e de exceção recorrentes.
  • As instâncias de uma série recorrente são abreviadas e contêm apenas as propriedades Start e End. Você pode capturar o restante das informações do evento de ocorrência do evento mestre recorrente. Veja Recurso de evento para obter informações de referência.
  • Não é possível usar os parâmetros de consulta $filter, $count, $select, $skip, $top, e $search.

Tipo de resposta

Os eventos expandidos e eventos abreviados no intervalo de tempo especificado.

Exemplo

O exemplo a seguir mostra as solicitações de sincronização iniciais e secundárias para sincronizar o calendário padrão do usuário. Cada solicitação especifica o retorno de apenas um evento completo de cada vez:

  • A resposta inicial retorna um evento, um deltaLink e deltaToken.
  • A segunda solicitação usa deltatoken. A segunda resposta retorna um evento, um nextLink e skipToken.

Para concluir a sincronização, use o skipToken retornado da solicitação de sincronização anterior até que a resposta de sincronização retorne um deltaLink e deltaToken. Nesse caso, esta série de sincronização está concluída. Salve o deltaToken para a próxima série de sincronização.

Para mais informações, veja Sincronizar eventos em uma visão de calendário do Outlook.

Exemplo de solicitação inicial

    GET https://outlook.office.com/api/v2.0/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

Exemplo de dados da resposta inicial

Preference-Applied: odata.track-changes

    {
        "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarView",
        "value": [
            {
                "@odata.id": "https://outlook.office.com/api/v2.0/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": "",
                    "Address": null
                },
                "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/v2.0/me/calendarview/?startdatetime=2015-01-01T00%3a00%3a00Z&enddatetime=2015-04-10T00%3a00%3a00Z&%24deltatoken=v2%2cH4roCAAA%3d%2c1.0%2cFalse%2cA00%2c"
    }

Exemplo de segunda solicitação

    GET https://outlook.office.com/api/v2.0/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

Exemplo de dados da segunda resposta

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarView/$delta",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/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": "",
                "Address": {
                    "Street": "",
                    "City": "",
                    "State": "",
                    "CountryOrRegion": "",
                    "PostalCode": ""
                }
             },
            "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/v2.0/me/calendarview/?startdatetime=2015-01-01T00%3a00%3a00Z&enddatetime=2015-08-10T00%3a00%3a00Z&%24skipToken=530c9d02ae1a4d96804538bd4d381546"
}

Localizar horários de reunião

Escopo mínimo necessário

Uma das seguintes opções:

Localize as sugestões de hora da reunião com base no organizador e na disponibilidade dos participantes, assim como nas restrições de horário ou local especificadas como parâmetros.

Esta operação aplica-se somente às caixas de correio do Office 365 (no Azure AD) e não às contas da Microsoft.

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

Todos os parâmetros suportados estão listados a seguir. Dependendo do seu cenário, especifique os parâmetros necessários no corpo da solicitação da ação FindMeetingTimes.

Parâmetro Tipo Descrição Obrigatório?
Attendees Coleção (AttendeeBase) Participantes ou recursos para a reunião. Uma coleção vazia faz com que FindMeetingTimes procure horários livres apenas para o organizador. Opcional
IsOrganizerOptional Edm.Boolean Especifique true se o organizador não tiver necessariamente que comparecer. O padrão é false. Opcional
LocationConstraint LocationConstraint Os requisitos do organizador sobre o local da reunião, tal como se é necessário sugerir de um local de encontro, ou há locais específicos apenas onde a reunião pode ocorrer. Opcional
MaxCandidates Edm.Int32 O número máximo de sugestões de reunião a serem retornadas na resposta. Opcional
MeetingDuration Edm.Duration A duração da reunião expressa no formato ISO 8601 para durações, por exemplo, PT1H representa 1 hora. Se nenhuma duração da reunião for especificada, FindMeetingTimes usará o padrão de 30 minutos. Opcional
MinimumAttendeePercentage Edm.Double A confiança mínima exigida para um intervalo de tempo a ser retornado na resposta. É um valor % variando de 0 a 100. Opcional
ReturnSuggestionReasons Edm.Boolean Especifique true para retornar uma razão para cada sugestão de reunião na propriedade SuggestionReason. O padrão é false para não retornar essa propriedade. Opcional
TimeConstraint TimeConstraint Qualquer restrição de tempo para uma reunião, incluindo a natureza da reunião (ActivityDomain) e possíveis períodos de reunião (TimeSlots). FindMeetingTimes pressupõe ActivityDomain como Work se você não especificar esse parâmetro. Opcional

FindMeetingTimes verifica o status de disponibilidade nos calendários principais do organizador e dos participantes. Com base nos parâmetros especificados, a ação sugere os melhores horários de reunião possíveis. A tabela a seguir descreve as restrições que você pode especificar no parâmetro TimeConstraint.

Valor ActivityDomain em TimeConstraint Sugestões de horário para reuniões
Work As sugestões estão dentro do horário de trabalho do usuário, que é definido na configuração do calendário do usuário e pode ser personalizado pelo usuário ou pelo administrador. O horário de trabalho padrão é de segunda a sexta, das 8h às 17h, na configuração de fuso horário para a caixa de correio. Este é o valor padrão se nenhuma ActivityDomain for especificada.
Personal As sugestões estão dentro do horário de trabalho do usuário e nos sábados e domingos. O padrão é de segunda a domingo, das 8h às 17h, no fuso horário definido para a caixa de correio.
Unrestricted As sugestões podem ser todas as horas do dia, todos os dias da semana.
Unknown Não use esse valor, pois ele será preterido no futuro. No momento, comporta-se da mesma forma que Trabalho. Altere qualquer código existente para usar Work, Personal ou Unrestricted conforme apropriado.

Tipo de resposta

Um MeetingTimeSuggestionsResult que inclui uma coleção de sugestões de reuniões, cada uma delas do tipo MeetingTimeSuggestion, e uma propriedade EmptySuggestionsReason.

Cada sugestão é definida como MeetingTimeSuggestion, com os participantes tendo um nível de confiança de 50% de participação como padrão ou um percentual específico definido no parâmetro MinimumAttendeePercentage.

Por padrão, cada sugestão de horário de reunião é retornada em UTC. Aplique o cabeçalho de solicitação Prefer: outlook.timezone para que as sugestões de horário de reunião sejam reajustadas em um fuso horário diferente, por exemplo:

Prefer: outlook.timezone="Pacific Standard Time"

Se FindMeetingTimes não puder retornar nenhuma sugestão de reunião, a resposta indicará um motivo na propriedade EmptySuggestionsReason. Com base nesse valor, você pode ajustar melhor os parâmetros e chamar FindMeetingTimes novamente.

Observação

No momento, FindMeetingTimes pressupõe que qualquer Attendee que for uma pessoa (em vez de um recurso) será um participante obrigatório. Portanto, especifique Required para uma pessoa e Resource para um recurso na propriedade Type correspondente, como parte do parâmetro de coleção Attendees.

Cada exemplo abaixo chama FindMeetingTimes e varia de acordo com as restrições de disponibilidade, tempo e localização do participante, conforme descrito a seguir:

Encontrar horário e local de reunião com participantes específicos

Encontre horários e locais de reunião especificando os seguintes parâmetros no corpo da solicitação:

  • Attendees
  • TimeConstraint
  • MeetingDuration

Exemplo de solicitação

O exemplo a seguir sugere horários e locais de reunião levando em consideração a disponibilidade do organizador e do participante durante o horário de trabalho no intervalo de tempo de reunião solicitado e o período solicitado.

POST https://outlook.office.com/api/v2.0/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" 
} 

Exemplo de resposta

Código de status: 200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$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",
                    "LocationEmailAddress": "",
                    "LocationUri": "",
                    "Address": null,
                    "Coordinates": null
                }
            ]
        },
        {
            "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",
                    "LocationEmailAddress": "",
                    "LocationUri": "",
                    "Address": null,
                    "Coordinates": null
                }
            ]
        }
    ],
    "EmptySuggestionsReason": ""
}

Encontrar horário de reunião em um local conhecido e obter um motivo para cada sugestão

Encontre um horário de reunião em um local predeterminado e solicite um motivo para cada sugestão, especificando os seguintes parâmetros no corpo da solicitação:

  • Attendees
  • LocationConstraint
  • TimeConstraint
  • MeetingDuration
  • ReturnSuggestionReasons

Ao definir o parâmetro ReturnSuggestionReasons , você também obtém uma explicação para cada sugestão na propriedade SuggestionReason, se FindMeetingTimes retornar qualquer sugestão.

Exemplo de solicitação

POST https://outlook.office.com/api/v2.0/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"
} 

Exemplo de resposta

Código de status: 200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$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"
                }
            ],
            "SuggestionReason": "Suggested because it is one of the nearest times when all attendees are available."
        }
    ],
    "EmptySuggestionsReason": ""
}

Encontrar horário de reunião, mas nenhum participante está disponível

Encontre um horário de reunião em um local predeterminado especificando os seguintes parâmetros no corpo da solicitação:

  • Attendees
  • LocationConstraint
  • TimeConstraint
  • MeetingDuration

Neste exemplo, com base em parâmetros especificados e disponibilidade do participante, FindMeetingTimes não pode retornar nenhuma sugestão e, em vez disso, retorna um motivo AttendeesUnavailable na propriedade EmptySuggestionsReason.

Veja outros motivos possíveis para não retornar qualquer sugestão de reunião.

Exemplo de solicitação

POST https://outlook.office.com/api/v2.0/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" 
}

Exemplo de resposta

Código de status: 200

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

Encontrar horário de reunião, mas apenas alguns participantes estão disponíveis

Encontre um horário de reunião em um local predeterminado especificando os seguintes parâmetros no corpo da solicitação:

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

Neste exemplo, somente um dos dois participantes está disponível. Cada sugestão de reunião que FindMeetingTimes retorna inclui:

  • A disponibilidade de cada participante
  • Uma Confiança de reunião computada, que é o percentual médio de chance dos participantes estarem presentes. Esse valor deve atender ao requisito de 60% especificado em MinimumAttendeePercentage.
  • Uma SuggestionHint, tendo em vista que o parâmetro ReturnSuggestionReasons está definido.

Encontre mais informações sobre a confiança de uma reunião.

Exemplo de solicitação

POST https://outlook.office.com/api/v2.0/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"
}

Exemplo de resposta

Código de status: 200

{
   "@odata.context":"https://outlook.office.com/api/v2.0/$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"
            }
         ],
         "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"
            }
         ],
         "SuggestionReason":"Suggested because it is one of the nearest times when most attendees are available."
      }
   ],
   "EmptySuggestionsReason":""
}

Encontrar intervalos de tempo livres apenas para o usuário conectado

Encontre intervalos de tempo livres no calendário principal do usuário conectado em qualquer horário da semana em um intervalo de datas, especificando os seguintes parâmetros no corpo da solicitação:

  • TimeConstraint
  • MeetingDuration

Exemplo de solicitação

Este exemplo mostra intervalos de tempo livres de uma hora, conforme especificado por MeetingDuration, no calendário principal do usuário conectado, a qualquer momento da semana em um intervalo de datas especificado por TimeConstraint.

POST https://outlook.office.com/api/v2.0/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"
}

Exemplo de resposta

Código de status: 200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$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": ""
}

Obter salas de reunião (versão prévia)

No momento, este recurso está disponível na versão beta. Para saber mais, na tabela de conteúdo à esquerda, vá para a seção Referência da API REST do Office 365 e selecione beta.

Criar eventos

Criar um evento no calendário

Escopo mínimo necessário

Uma das seguintes opções:

Crie um evento no calendário principal do usuário ou em um calendário específico postando no ponto de extremidade events do calendário. Ao criar o evento, o servidor envia convites para todos os participantes.

POST https://outlook.office.com/api/v2.0/me/events
POST https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}/events
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_id cadeia de caracteres A ID do calendário.

Exemplo de solicitação

POST https://outlook.office.com/api/v2.0/me/events
Content-Type: application/json
{
  "Subject": "Discuss the Calendar REST API",
  "Body": {
    "ContentType": "HTML",
    "Content": "I think it will meet our requirements!"
  },
  "Start": {
      "DateTime": "2014-02-02T18:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "End": {
      "DateTime": "2014-02-02T19:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "Attendees": [
    {
      "EmailAddress": {
        "Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
        "Name": "Janet Schorr"
      },
      "Type": "Required"
    }
  ]
}

Exemplo de resposta

Código do status: 201

{
  "@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('AAMkAGE4v1RAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeNheA==\"",
  "Id": "AAMkAGE4v1RAAA=",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeNheA==",
  "Categories": [],
  "CreatedDateTime": "2014-01-22T20:56:10.1058291Z",
  "LastModifiedDateTime": "2014-01-22T20:56:10.3402186Z",
  "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": "",
    "Address": null
  },
  "ShowAs": "Busy",
  "IsAllDay": false,
  "IsCancelled": false,
  "IsOrganizer": true,
  "ResponseRequested": true,
  "Type": "SingleInstance",
  "SeriesMasterId": null,
  "Attendees": [
    {
      "EmailAddress": {
        "Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
        "Name": "Janet Schorr"
      },
      "Status": {
        "Response": "None",
        "Time": "0001-01-01T00:00:00Z"
      },
      "Type": "Required"
    }
  ],
  "Recurrence": null,
  "OriginalEndTimeZone": "Pacific Standard Time",
  "OriginalStartTimeZone": "Pacific Standard Time",
  "Organizer": {
    "EmailAddress": {
      "Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
      "Name": "alexd"
    }
  },
  "OnlineMeetingUrl": null
}

Tipo de resposta

O novo evento.

Por padrão, a resposta inclui todas as propriedades do novo evento. Use $select para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada.

A seguir, veja um exemplo que inclui apenas as propriedades Start e End do novo evento na resposta.

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

Atualizar eventos

Atualizar um evento do calendário

Escopo mínimo necessário

Uma das seguintes opções:

Altere um evento. Apenas as propriedades especificadas são alteradas. Se o usuário for o organizador, o servidor enviará atualizações de reunião para todos os participantes.

PATCH https://outlook.office.com/api/v2.0/me/events/{event_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id cadeia de caracteres ID do evento.

Especifique qualquer propriedade de evento gravável no corpo da solicitação.

Exemplo de solicitação

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

{
  "Location": {
    "DisplayName": "Your office",
    "Address": null
  }
}

Exemplo de resposta

Código de status: 200

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Events/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/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": "Your office",
    "Address": null
  },
  "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
}

Tipo de resposta

O evento atualizado. Se o usuário for o organizador, o servidor enviará atualizações de reunião para todos os participantes.

Por padrão, a resposta inclui todas as propriedades do evento atualizado. Use $select para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada.

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

Responder a eventos

Aceitar o evento

Escopo mínimo necessário

Uma das seguintes opções:

Aceitar o evento especificado.

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/accept
Parâmetro Tipo Descrição
Parâmetros de URL
event_id cadeia de caracteres ID do evento. Obrigatório.
Parâmetros do corpo
Comentário cadeia de caracteres Texto incluído na resposta. Opcional.
SendResponse booliano true se uma resposta deve ser enviada ao organizador; caso contrário, false. Opcional. O padrão é true.

Exemplo de solicitação

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

Content-Type: application/json

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

Resposta

Uma resposta bem-sucedida é indicada por um código de resposta HTTP 202 Accepted.

Aceitar provisoriamente o evento

Escopo mínimo necessário

Uma das seguintes opções:

Aceitar provisoriamente o evento especificado.

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/tentativelyaccept
Parâmetro Tipo Descrição
Parâmetros de URL
event_id cadeia de caracteres ID do evento. Obrigatório.
Parâmetros do corpo
Comentário cadeia de caracteres Texto incluído na resposta. Opcional.
SendResponse booliano true se uma resposta deve ser enviada ao organizador; caso contrário, false. Opcional. O padrão é true.

Exemplo de solicitação

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

Content-Type: application/json

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

Resposta

Uma resposta bem-sucedida é indicada por um código de resposta HTTP 202 Accepted.

Recusar o evento

Escopo mínimo necessário

Uma das seguintes opções:

Recusar o convite para o evento especificado.

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/decline
Parâmetro Tipo Descrição
Parâmetros de URL
event_id cadeia de caracteres ID do evento. Obrigatório.
Parâmetros do corpo
Comentário cadeia de caracteres Texto incluído na resposta. Opcional.
SendResponse booliano true se uma resposta deve ser enviada ao organizador; caso contrário, false. Opcional. O padrão é true.

Exemplo de solicitação

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

Content-Type: application/json

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

Resposta

Uma resposta bem-sucedida é indicada por um código de resposta HTTP 202 Accepted.

Encaminhar eventos (versão prévia)

No momento, este recurso está disponível apenas na versão beta. Para saber mais, na tabela de conteúdo à esquerda, vá para a seção Referência da API REST do Office 365 e selecione beta.

Excluir eventos

Excluir um evento do calendário

Escopo mínimo necessário

Uma das seguintes opções:

Mova um evento para a pasta Itens Excluídos do usuário conectado. Se o evento for uma reunião e o usuário conectado for o organizador, o servidor enviará cancelamentos a todos os participantes.

DELETE https://outlook.office.com/api/v2.0/me/events/{event_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id cadeia de caracteres ID do evento.

Exemplo de solicitação

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

Exemplo de resposta

Status code: 204

Cancelar eventos (versão prévia)

No momento, este recurso está disponível apenas na versão beta. Para saber mais, na tabela de conteúdo à esquerda, vá para a seção Referência da API REST do Office 365 e selecione beta.

Obter anexos

Você pode obter uma coleção de anexos ou um único anexo.

Obter uma coleção de anexos

Escopo mínimo necessário

Uma das seguintes opções:

Obtenha os anexos de um evento específico.

Observação

Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.

GET https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id cadeia de caracteres ID do evento.

Tipo de resposta

Uma coleção de anexos que pode ser do tipo FileAttachment ou ItemAttachment.

Exemplo de solicitação

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

Exemplo de resposta

Código de status: 200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Events('AAMkAGI2NG9yAAA%3D')/Attachments",
    "value": [
        {
            "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
            "@odata.id": "https://outlook.office.com/api/v2.0/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=="
        }
    ]
}

Obter um anexo

Escopo mínimo necessário

Uma das seguintes opções:

Obter um anexo de um evento específico.

GET https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments/{attachment_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id cadeia de caracteres ID do evento.
attachment_id cadeia de caracteres A ID do anexo.

Observação

Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.

Tipo de resposta

O anexo de arquivo ou anexo de item solicitado.

Exemplo de solicitação

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

Exemplo de resposta

Código de status: 200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Events('AAMkAGI2WRAAADTG9yAAA%3D')/Attachments/$entity",
    "@odata.type": "#Microsoft.OutlookServices.FileAttachment",
    "@odata.id": "https://outlook.office.com/api/v2.0/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=="
}

Exemplo de solicitação ($expand em anexos)

O exemplo a seguir obtém e expande os dois anexos de referência em linha com as propriedades do evento.

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

Exemplo de resposta

Código de status: 200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$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
        }
    ]
}

Exemplo de solicitação ($expand em itens de anexo aninhados)

O exemplo a seguir obtém um item de anexo aninhado.

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

Exemplo de resposta

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",
    }
}

Criar anexos

Você pode criar um anexo de arquivo ou criar um anexo de item para um evento.

Criar um anexo de arquivo

Escopo mínimo necessário

Uma das seguintes opções:

Adicione um anexo de arquivo a um evento.

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id cadeia de caracteres ID do evento.
Parâmetros do corpo
@odata.type cadeia de caracteres #Microsoft.OutlookServices.FileAttachment
Name cadeia de caracteres O nome do anexo.
ContentBytes binário O arquivo a ser anexado.

Tipo de resposta

O novo anexo de arquivo.

Criar um anexo de item

Escopo mínimo necessário

Uma das seguintes opções:

Adicionar um anexo de item a um evento.

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id cadeia de caracteres ID do evento.
Parâmetros do corpo
@odata.type cadeia de caracteres #Microsoft.OutlookServices.ItemAttachment
Name cadeia de caracteres O nome do anexo.
Item Uma entidade Mensagem, Evento ou Contato. O item a ser anexado.

Tipo de resposta

O novo anexo de item.

Criar um anexo de referência

Escopo mínimo necessário

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

Adicione um anexo de referência a um evento.

POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id Cadeia de caracteres ID do evento.
Parâmetros do corpo
@odata.type Cadeia de caracteres #Microsoft.OutlookServices.ReferenceAttachment
Name Cadeia de caracteres O nome de exibição do anexo. Obrigatório.
SourceUrl Cadeia de caracteres URL para obter o conteúdo do anexo. Se este for um URL para uma pasta, para que a pasta seja exibida corretamente no Outlook ou Outlook na Web, defina IsFolder como verdadeiro. Obrigatório.

Especifique os parâmetros Name e SourceUrl e qualquer propriedade gravável do anexo de referência no corpo da solicitação.

Tipo de resposta

O anexo de referência.

Exemplo de solicitação

O exemplo a seguir adiciona um anexo de referência a um evento existente. O anexo é um link para um arquivo do OneDrive for Business.

POST https://outlook.office.com/api/v2.0/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" 
 }

Exemplo de resposta

Código do status: 201 Created

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$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
}

Excluir anexos

Excluir um anexo de evento

Escopo mínimo necessário

Uma das seguintes opções:

Exclua o anexo especificado de um evento. O anexo pode ser um anexo de arquivo ou anexo de item.

DELETE https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments/{attachment_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id cadeia de caracteres ID do evento.
attachment_id cadeia de caracteres A ID do anexo.

Exemplo de solicitação

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

Exemplo de resposta

Status code: 204

Receber lembretes

Obtenha uma lista de lembretes de eventos entre duas datas e horários de um calendário.

Escopo mínimo necessário

Uma das seguintes opções:

GET https://outlook.office.com/api/v2.0/me/ReminderView(StartDateTime='{DateTime}',EndDateTime='{DateTime}')
Parâmetro obrigatório Tipo Descrição
Parâmetros do cabeçalho
Prefer: outlook.timezone O fuso horário padrão para eventos na resposta.
Parâmetros de URL
StartDateTime cadeia de caracteres A data e o horário de início dos lembretes retornados.
EndDateTime cadeia de caracteres A data e o horário de término dos lembretes retornados.

Use o cabeçalho Prefer: outlook.timezone para especificar o fuso horário a ser usado para os horários de início e término do evento na resposta. Se o evento foi criado em um fuso horário diferente, os horários de início e término serão ajustados para o fuso horário especificado.

Confira esta lista para ver os nomes de fuso horário suportados. Se o cabeçalho Prefer: outlook.timezone não estiver especificado, o fuso horário será definido como UTC.

Adiar lembretes

Adiar um lembrete até um novo horário.

Escopo mínimo necessário

Uma das seguintes opções:

POST https://outlook.office.com/api/v2.0/me/Events('{id}')/SnoozeReminder
Parâmetros obrigatórios Tipo Descrição
Parâmetros de URL
id cadeia de caracteres A ID do evento.
Parâmetros do corpo
NewReminderTime DateTimeTimeZone A nova data e hora para disparar o lembrete.

Ignorar lembretes

Ignorar um lembrete disparado.

Escopo mínimo necessário

Uma das seguintes opções:

POST https://outlook.office.com/api/v2.0/me/Events({id})/DismissReminder
Parâmetros obrigatórios Tipo Descrição
Parâmetros de URL
id cadeia de caracteres A ID do evento.

Obter calendários

Você pode obter uma coleção de calendários ou obter um calendário.

Obter uma coleção de calendários

Escopo mínimo necessário

Uma das seguintes opções:

Obter todos os calendários do usuário (calendars) ou obter os calendários de um grupo de calendários específico.

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

Observação

Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.

Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calender_group_id cadeia de caracteres A ID do grupo de calendários.

Exemplo de solicitação

https://outlook.office.com/api/v2.0/me/calendars

Exemplo de resposta

Código de status: 200

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

Obter um calendário

Escopo mínimo necessário

Uma das seguintes opções:

Obtenha um calendário por ID. Você pode obter o calendário principal do usuário usando o ponto de extremidade ../me/calendar.

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

Observação

Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.

Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_id cadeia de caracteres A ID do calendário.

Exemplo de solicitação

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

Exemplo de resposta

Código de status: 200

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

Tipo de resposta

O calendário solicitado.

Criar calendários

Criar um calendário

Escopo mínimo necessário

Uma das seguintes opções:

Crie um calendário no grupo de calendários padrão usando o atalho ../me/calendars ou em um determinado grupo de calendários ao publicar no ponto de extremidade calendars do grupo.

POST https://outlook.office.com/api/v2.0/me/calendars
POST https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}/calendars
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calender_group_id cadeia de caracteres ID do grupo de calendários, se você estiver obtendo calendários de um grupo específico.
Parâmetros do corpo
Name cadeia de caracteres O nome do novo calendário.

Exemplo de solicitação

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

{
  "Name": "Social"
}

Exemplo de resposta

Código do status: 201

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGE4xLHAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SQ==\"",
  "Id": "AAMkAGE4xLHAAA=",
  "Name": "Social",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SQ==",
  "CanShare":true,
  "CanViewPrivateItems":true,
  "CanEdit":true,
  "Owner":{
    "Name":"Fanny Downs",
    "Address":"fannyd@adatum.onmicrosoft.com"
  }
}

Tipo de resposta

O novo calendário.

Atualizar calendários

Atualizar um calendário

Escopo mínimo necessário

Uma das seguintes opções:

Altere as propriedades graváveis ​​de um calendário.

PATCH https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_id cadeia de caracteres A ID do calendário.

Exemplo de solicitação

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

{
  "Name": "Social events"
}

Exemplo de resposta

Código de status: 200

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGE4xLIAAA=')",
  "@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Sw==\"",
  "Id": "AAMkAGE4xLIAAA=",
  "Name": "Social events",
  "ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Sw==",
  "CanShare":true,
  "CanViewPrivateItems":true,
  "CanEdit":true,
  "Owner":{
    "Name":"Fanny Downs",
    "Address":"fannyd@adatum.onmicrosoft.com"
  }
}

Tipo de resposta

O calendário atualizado.

Excluir calendários

Excluir um calendário

Escopo mínimo necessário

Uma das seguintes opções:

DELETE https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_id cadeia de caracteres A ID do calendário.

Exemplo de solicitação

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

Exemplo de resposta

Status code: 204

Obter grupos de calendários

Você pode obter uma coleção de grupos de calendários ou obter um grupo calendários.

Observação

O Outlook.com tem suporte apenas para o grupo de calendários padrão que é acessível pelo atalho ../me/calendars.

Obter uma coleção de grupos de calendários

Escopo mínimo necessário

Uma das seguintes opções:

Obter os grupos de calendários em uma caixa de correio.

GET https://outlook.office.com/api/v2.0/me/calendargroups

Observação

Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.

Exemplo de solicitação

GET https://outlook.office.com/api/v2.0/me/calendargroups

Exemplo de resposta

Código de status: 200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/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/v2.0/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=="
        }
    ]
}

Tipo de resposta

A coleção de grupos de calendários solicitada.

Obter um grupo de calendários

Escopo mínimo necessário

Uma das seguintes opções:

Obter um grupo de calendários por ID.

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

Observação

Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.

Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_group_id cadeia de caracteres A ID do grupo de calendários.

Exemplo de solicitação

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

Exemplo de resposta

Código de status: 200

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups/$entity",
    "@odata.id": "https://outlook.office.com/api/v2.0/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=="
}

Tipo de resposta

O grupo de calendários solicitado.

Criar grupos de calendários

Criar um grupo de calendários. Name é a única propriedade gravável para um grupo de calendários.

Observação

O Outlook.com tem suporte apenas para o grupo de calendários padrão que é acessível pelo atalho ../me/calendars. Você não pode criar outro grupo de calendários no Outlook.com.

Criar um grupo de calendários

Escopo mínimo necessário

Uma das seguintes opções:

POST https://outlook.office.com/api/v2.0/me/calendargroups
Parâmetro obrigatório Tipo Descrição
Parâmetro de URL
Parâmetros do corpo
Name cadeia de caracteres O nome do grupo de calendários.

Exemplo de solicitação

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

{
  "Name": "Birthdays"
}

Exemplo de resposta

Código do status: 201

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/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"
}

Tipo de resposta

O novo grupo de calendários.

Atualizar grupos de calendários

Atualizar um grupo de calendários

Escopo mínimo necessário

Uma das seguintes opções:

Altere o nome de um grupo de calendários. Name é a única propriedade gravável do grupo de calendários.

PATCH https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_group_id cadeia de caracteres ID do grupo de calendários.
Parâmetros do corpo
Name cadeia de caracteres O nome do grupo de calendários atualizado.

Exemplo de solicitação

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

{
  "Name": "Holidays"
}

Exemplo de resposta

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups/$entity",
  "@odata.id": "https://https://outlook.office.com/api/v2.0/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"
}

Tipo de resposta

O grupo de calendários atualizado.

Excluir grupos de calendários

Observação

O Outlook.com tem suporte apenas para o grupo de calendários padrão que é acessível pelo atalho ../me/calendars. Não exclua este grupo de calendários.

Excluir um grupo de calendários

Escopo mínimo necessário

Uma das seguintes opções:

DELETE https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_group_id cadeia de caracteres A ID do grupo de calendários.

Exemplo de solicitação

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

Exemplo de resposta

Status code: 204

Próximas etapas

Se você estiver pronto para começar a criar um aplicativo ou apenas quiser aprender mais, temos tudo o que você precisa.

Se preferir, aprenda mais sobre como usar a plataforma do Office 365: