Referência da API REST de Calendário do Outlook (beta)

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

Observação

Esta documentação abrange a API para salas de reunião, vários locais de eventos, compartilhamento de calendário e encaminhamento e cancelamento de eventos que estão em versão prévia. Os recursos de versão prévia estão sujeitos a alterações antes da finalização e podem violar o código que os utiliza. Por essa razão, em geral, você deve usar somente uma versão de produção de uma API em seu código de produção. Se disponível, v2.0 é, no momento, a versão preferida.

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 versão beta da API? No sumário à esquerda, vá para a seção Referência da API REST do Office 365 e selecione a versão que deseja.

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 de 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ários

Grupos de calendários 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 no 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.

Confira 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 suportam 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 padrão 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.

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/beta/me/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
GET https://outlook.office.com/api/beta/me/calendars/{calendar_id}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
Parâmetro obrigatório Tipo Descrição
Parâmetros do cabeçalho
Preferir: outlook.timezone O fuso horário padrão para eventos na resposta.
Parâmetros de URL
calendar_id sequência 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 em UTC.

Observação

Por padrão, cada evento na resposta inclui todas as suas propriedades. Usar $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/beta/me/calendarview?startDateTime=2014-10-01T01:00:00Z&endDateTime=2014-10-31T23:00:00Z&$select=Subject

Tipo de resposta

Os eventos expandidos no intervalo de tempo especificado.

Obter eventos mestre de série e eventos ú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/beta/me/events
GET https://outlook.office.com/api/beta/me/calendars/{calendar_id}/events
Parâmetro obrigatório Tipo Descrição
Parâmetros de cabeçalho
Preferir: outlook.timezone O fuso horário padrão para eventos na resposta.
Parâmetros de URL
calendar_id sequência 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 em UTC.

Observação

Cada evento na resposta inclui todas as suas propriedades. Usar $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 amostra 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.

Solicitação de amostra

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

Resposta de amostra

Código de status: 200

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

                }
            },
            "Locations":[

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

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/beta/me/events/{event_id}/instances?startDateTime={start_datetime}&endDateTime={end_datetime}
Parâmetro obrigatório Tipo Descrição
Parâmetros do cabeçalho
Preferir: outlook.timezone O fuso horário padrão para eventos na resposta.
Parâmetros de URL
event_id sequência 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 em UTC.

Tipo de resposta

A coleção de eventos solicitada.

Observação

Por padrão, cada evento na resposta inclui todas as suas propriedades. Usar $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/beta/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/beta/me/events/{event_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros do cabeçalho
Preferir: outlook.timezone O fuso horário padrão para eventos na resposta.
Parâmetros de URL
event_id sequência 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 dos fusos horários 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.

Solicitação de amostra

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

Resposta de amostra

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

Tipo de resposta

O evento solicitado.

Observação

Por padrão, a resposta inclui todas as propriedades do evento. Usar $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.

Solicitação de amostra

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

Resposta de amostra

    {
        "@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/beta/{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/beta/{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/beta/{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/beta/{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/beta/{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/beta/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$skiptoken={skip_token}

Parâmetros

Parâmetro Tipo Descrição
Parâmetros do cabeçalho
Preferir: outlook.timezone O fuso horário padrão para eventos na resposta.
Parâmetros de URL
user_context sequência 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 sequência 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 sequência de caracteres A sequência de caracteres deltaToken retornada como parte do valor de @odata.deltaLink na resposta de sincronização anterior.
skip_token sequência de caracteres A sequência de caracteres skipToken retornada como parte do valor de @odata.nextLink na resposta de sincronização anterior.

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 dos fusos horários 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

  • 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. Consulte 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.

Solicitação inicial de amostra

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

Amostra de dados da resposta inicial

Preference-Applied: odata.track-changes

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

                    }
                },
                "Locations":[

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

Amostra da segunda solicitação

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

Amostra de dados da segunda resposta

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

                }
            },
            "Locations":[

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

Localizar horários de reunião

Escopo mínimo necessário

Uma das seguintes opções:

Localizar 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?
Participantes 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 Especificar 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 O mínimo necessário de confiança para um intervalo de tempo a ser retornado na resposta. É um valor de % variando de 0 a 100. Opcional
ReturnSuggestionReasons Edm.Boolean Especificar 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
Trabalho 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, no fuso horário definido para a caixa de correio. Este é o valor padrão se nenhuma ActivityDomain for especificada.
Pessoal As sugestões são dentro das horas de trabalho do usuário, e sábado e domingo. O padrão é de segunda a sexta, das 8h às 17h, na configuração de fuso horário da caixa de correio.
Irrestrito As sugestões podem ser todas as horas do dia, todos os dias da semana.
Desconhecido 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 Trabalho, Pessoal ou Irrestrito conforme apropriado.

Tipo de resposta

Um MeetingTimeSuggestionsResult que inclui uma coleção de sugestões de reuniões, cada uma 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 é retornado 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 Participante 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 AttendTranslatedees.

Cada exemplo abaixo chama FindMeetingTimes e varia de acordo com as restrições de disponibilidade, horário 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:

  • Participantes
  • TimeConstraint
  • MeetingDuration

Solicitação de amostra

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 do intervalo de tempo de reunião solicitado e o período solicitado.

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

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

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

Resposta de amostra

Código de status: 200

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

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.

Solicitação de amostra

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

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

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

Resposta de amostra

Código de status: 200

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

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

Encontrar 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.

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

Solicitação de amostra

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

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

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

Resposta de amostra

Código de status: 200

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

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

Encontrar 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, apenas 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.

Solicitação de amostra

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

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

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

Resposta de amostra

Código de status: 200

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

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

Solicitação de amostra

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/beta/me/findmeetingtimes

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

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

Resposta de amostra

Código de status: 200

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

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

No Outlook, um locatário pode organizar salas de reunião em listas de salas. Cada sala de reunião e lista de salas é representada por uma instância EmailAddress.

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

Escopo mínimo necessário

Uma das seguintes opções:

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

Obter as listas de salas definidas em um locatário.

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

Tipo de resposta

Coleção de instâncias EmailAddress. Se nenhuma lista for definida no locatário, uma matriz vazia será retornada.

Solicitação de amostra

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

Resposta de amostra

Status code: 200 

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

Obter salas (versão prévia)

Escopo mínimo necessário

Uma das seguintes opções:

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

Você pode obter todas as salas de reunião definidas no locatário do usuário ou obter as salas de reunião em uma lista específica de salas.

Observação

Essas operações retornam até as 100 primeiras salas em um locatário.

Para obter todas as salas no locatário do usuário:

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

Para obter as salas em uma lista de salas especificada:

GET https://outlook.office.com/api/beta/me/findrooms(roomlist='{room_list}') 
Parâmetro opcional Tipo Descrição
Parâmetros da função
room_list sequência de caracteres Endereço SMTP associado à lista de salas. Cada lista de salas é representada por uma instância EmailAddress que inclui um endereço SMTP.

Tipo de resposta

Coleção de instâncias EmailAddress.

Solicitação de amostra

O exemplo a seguir obtém as salas definidas no locatário do usuário conectado.

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

Resposta de amostra

Status code: 200 

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

Solicitação de amostra

O exemplo a seguir obtém as salas na lista de salas especificada identificada pelo endereço de email Building2Rooms@contoso.onmicrosoft.com.

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

Resposta de amostra

Status code: 200 

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

Criar eventos

Criar um evento no calendário

Escopo mínimo necessário

Uma das seguintes opções:

Criar 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/beta/me/events
POST https://outlook.office.com/api/beta/me/calendars/{calendar_id}/events
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_id sequência de caracteres ID do calendário.

Solicitação de amostra

O exemplo a seguir cria um evento para o organizador e participantes comparecerem a partir de três locais diferentes.

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

}

Resposta de amostra

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('94447c6e-ea4c-494c-a9ed-d905e366c5cb@007e925e-fb5a-4f60-9cb6-58a21e692480')/Events('AAMkADNCYBXsvAAA=')",
    "@odata.etag":"W/\"SuFHwDRP1EeXJUopWbSLlgAAmBvk2g==\"",
    "Id":"AAMkADNCYBXsvAAA=",
    "CreatedDateTime":"2017-06-06T19:59:23.003773-07:00",
    "LastModifiedDateTime":"2017-06-06T19:59:24.8432785-07:00",
    "ChangeKey":"SuFHwDRP1EeXJUopWbSLlgAAmBvk2g==",
    "Categories":[

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

Tipo de resposta

O novo evento.

Por padrão, a resposta inclui todas as propriedades do novo evento. Usar $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/beta/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/beta/me/events/{event_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id sequência de caracteres ID do evento.

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

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

Solicitação de amostra

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

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

Resposta de amostra

Código de status: 200

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

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. Usar $select para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada.

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/beta/me/events/{event_id}/accept
Parâmetro Tipo Descrição
Parâmetros de URL
event_id sequência de caracteres ID do evento. Obrigatório.
Parâmetros de corpo
Comentário sequência de caracteres Texto incluído na resposta. Opcional.
SendResponse booleano true se uma resposta deve ser enviada ao organizador; caso contrário, false. Opcional. O padrão é true.

Solicitação de amostra

POST https://outlook.office.com/api/beta/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 aceita HTTP 202.

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/beta/me/events/{event_id}/tentativelyaccept
Parâmetro Tipo Descrição
Parâmetros de URL
event_id sequência de caracteres ID do evento. Obrigatório.
Parâmetros de corpo
Comentário sequência de caracteres Texto incluído na resposta. Opcional.
SendResponse booleano true se uma resposta deve ser enviada ao organizador; caso contrário, false. Opcional. O padrão é true.

Solicitação de amostra

POST https://outlook.office.com/api/beta/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 aceita HTTP 202.

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/beta/me/events/{event_id}/decline
Parâmetro Tipo Descrição
Parâmetros de URL
event_id sequência de caracteres ID do evento. Obrigatório.
Parâmetros de corpo
Comentário sequência de caracteres Texto incluído na resposta. Opcional.
SendResponse booleano true se uma resposta deve ser enviada ao organizador; caso contrário, false. Opcional. O padrão é true.

Solicitação de amostra

POST https://outlook.office.com/api/beta/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 aceita HTTP 202.

Encaminhar eventos (versão prévia)

Escopo mínimo necessário

Uma das seguintes opções:

Esta ação permite que o organizador ou o participante de um evento de reunião encaminhe a solicitação de reunião ao novo destinatário.

Se o evento da reunião for encaminhado de uma caixa de correio do Office 365 para outro destinatário, essa ação também enviará uma mensagem para notificar o organizador do encaminhamento e adicionará o destinatário à cópia do organizador do evento da reunião. Essa conveniência não está disponível no encaminhamento de uma conta do Outlook.com.

POST https://outlook.office.com/api/beta/me/events('{event_id}')/forward
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id sequência de caracteres ID do evento.
Parâmetros de corpo
Comentário sequência de caracteres Um comentário a incluir. Não pode ser uma sequência de caracteres vazia.
ToRecipients Coleção (Destinatário) A lista de destinatários para os quais o evento será encaminhado.

Solicitação de amostra

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

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

Resposta de amostra

Status code: 202 Accepted

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.

Esta ação é diferente de Cancelar, sendo que Excluir está disponível para o organizador e os participantes da reunião. Se o usuário conectado for o organizador da reunião, o usuário simplesmente cancelará a reunião sem enviar uma mensagem de cancelamento personalizada aos participantes.

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

Solicitação de amostra

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

Resposta de amostra

Status code: 204

Cancelar eventos (versão prévia)

Escopo mínimo necessário

Uma das seguintes opções:

Esta ação permite que o organizador de uma reunião envie uma mensagem de cancelamento e cancele o evento.

A ação move o evento para a pasta Itens Excluídos. O organizador também pode cancelar uma ocorrência de uma reunião recorrente fornecendo a ID do evento de ocorrência. Um participante que chama essa ação recebe um erro (HTTP 400 Solicitação incorreta), com a seguinte mensagem de erro:

"Não é possível concluir sua solicitação. Você precisa ser um organizador para cancelar uma reunião. "

Esta ação é diferente de Excluir, sendo que Cancelar está disponível apenas para o organizador e permite que o organizador envie uma mensagem personalizada aos participantes sobre o cancelamento.

POST https://outlook.office.com/api/beta/me/events/{event_id}/Cancel
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id sequência de caracteres ID do evento.
Parâmetros de corpo
Comentário sequência de caracteres Um comentário sobre o cancelamento enviado a todos os participantes.

Solicitação de amostra

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

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

Resposta de amostra

Status code: 202

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/beta/me/events/{event_id}/attachments
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id sequência de caracteres ID do evento.

Tipo de resposta

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

Solicitação de amostra

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

Resposta de amostra

Código de status: 200

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

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/beta/me/events/{event_id}/attachments/{attachment_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id sequência de caracteres ID do evento.
attachment_id sequência 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, anexo de item ou anexo de referência solicitado.

Solicitação de amostra

O exemplo a seguir obtém o arquivo anexado a um evento específico.

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

Resposta de amostra

Código de status: 200

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

Amostra de solicitação (anexo de referência)

O exemplo a seguir obtém o anexo de referência de um evento.

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

Resposta de amostra

Código de status: 200

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

Amostra 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/beta/me/events('AAMkAGE1Mbs88AADggYEcAAA=')?$expand=attachments

Resposta de amostra

Código de status: 200

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

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

Código de status: 200

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

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

Resposta de amostra

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:

Adicionar um anexo de arquivo a um evento.

POST https://outlook.office.com/api/beta/me/events/{event_id}/attachments
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id sequência de caracteres ID do evento.
Parâmetros de corpo
@odata.type sequência de caracteres #Microsoft.OutlookServices.FileAttachment
Nome sequência 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/beta/me/events/{event_id}/attachments
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id sequência de caracteres ID do evento.
Parâmetros de corpo
@odata.type sequência de caracteres #Microsoft.OutlookServices.ItemAttachment
Nome sequência 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

Adicionar um anexo de referência a um evento.

POST https://outlook.office.com/api/beta/me/events/{event_id}/attachments
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
event_id Sequência de caracteres ID do evento.
Parâmetros de corpo
@odata.type Sequência de caracteres #Microsoft.OutlookServices.ReferenceAttachment
Nome Sequência de caracteres O nome de exibição do anexo. Obrigatório.
SourceUrl Sequência 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.

Especificar 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.

Solicitação de amostra

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/beta/me/events('AAMkAGE1Mbs88AADggYEcAAA=')/attachments
Content-Type: application/json

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

Resposta de amostra

Código do status: 201 Created

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

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, anexo de item ou anexo de referência.

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

Solicitação de amostra

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

Resposta de amostra

Status code: 204

Obter lembretes

Obter 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/beta/me/ReminderView(StartDateTime='{DateTime}',EndDateTime='{DateTime}')
Parâmetro obrigatório Tipo Descrição
Parâmetros do cabeçalho
Preferir: outlook.timezone O fuso horário padrão para eventos na resposta.
Parâmetros de URL
StartDateTime sequência de caracteres A data e o horário de início dos lembretes retornados.
EndDateTime sequência 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/beta/me/Events('{id}')/SnoozeReminder
Parâmetros obrigatórios Tipo Descrição
Parâmetros de URL
id sequência de caracteres A ID do evento.
Parâmetros de corpo
NewReminderTime DateTimeTimeZone A nova data e hora para disparar o lembrete.

Ignorar lembretes

Ignorar um lembrete acionado.

Escopo mínimo necessário

Uma das seguintes opções:

POST https://outlook.office.com/api/beta/me/Events({id})/DismissReminder
Parâmetros obrigatórios Tipo Descrição
Parâmetros de URL
id sequência 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/beta/me/calendars
GET https://outlook.office.com/api/beta/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 sequência de caracteres ID do grupo de calendários.

Solicitação de amostra

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

Resposta de amostra

Código de status: 200

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

Obter um calendário

Escopo mínimo necessário

Uma das seguintes opções:

Obter 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/beta/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 sequência de caracteres ID do calendário.

Solicitação de amostra

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

Resposta de amostra

Código de status: 200

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

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/beta/me/calendars
POST https://outlook.office.com/api/beta/me/calendargroups/{calendar_group_id}/calendars
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calender_group_id sequência de caracteres ID do grupo de calendários, se você estiver obtendo calendários de um grupo específico.
Parâmetros de corpo
Nome sequência de caracteres O nome do novo calendário.

Solicitação de amostra

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

{
  "Name": "Volunteer"
}

Resposta de amostra

Código do status: 201

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

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/beta/me/calendars/{calendar_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_id sequência de caracteres ID do calendário.

Solicitação de amostra

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

{
  "Name": "Social events"
}

Resposta de amostra

Código de status: 200

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

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/beta/me/calendars/{calendar_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_id sequência de caracteres ID do calendário.

Solicitação de amostra

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

Resposta de amostra

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/beta/me/calendargroups

Observação

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

Solicitação de amostra

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

Resposta de amostra

Código de status: 200

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

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/beta/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 sequência de caracteres ID do grupo de calendários.

Solicitação de amostra

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

Resposta de amostra

Código de status: 200

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

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/beta/me/calendargroups
Parâmetro obrigatório Tipo Descrição
Parâmetro de URL
Parâmetros de corpo
Nome sequência de caracteres O nome do grupo de calendários.

Solicitação de amostra

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

{
  "Name": "Birthdays"
}

Resposta de amostra

Código do status: 201

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

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/beta/me/calendargroups/{calendar_group_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_group_id sequência de caracteres ID do grupo de calendários.
Parâmetros de corpo
Nome sequência de caracteres O nome do grupo de calendários atualizado.

Solicitação de amostra

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

{
  "Name": "Holidays"
}

Resposta de amostra

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

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 excluir 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/beta/me/calendargroups/{calendar_group_id}
Parâmetro obrigatório Tipo Descrição
Parâmetros de URL
calendar_group_id sequência de caracteres ID do grupo de calendários.

Solicitação de amostra

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

Resposta de amostra

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: