Referência da API REST de Calendário do Outlook (versão 2.0)
Aplica-se a: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com
A API de Calendário fornece acesso a dados de eventos, calendários e grupos de calendários protegidos pelo Active Directory do Azure no Office 365 e a dados semelhantes nas contas da Microsoft especificamente nestes domínios: Hotmail.com, Live.com, MSN.com, Outlook.com e Passport.com.
Observação
- A exceção é a API para encontrar horários de reunião, que se aplica somente a caixas de correio do Office 365 (no Azure AD) e não a contas da Microsoft.
- Para simplificar a referência, o restante deste artigo usa o Outlook.com para incluir esses domínios de conta da Microsoft.
Não tem interesse na v2.0 da API? No tabela de conteúdo à esquerda, vá para a seção Referência da API REST do Office 365 e selecione a versão desejada.
Todas as operações da API de Calendário
Operações de evento
Um evento representa um compromisso ou reunião no calendário do usuário. Um evento pode ser um mestre da série (para eventos recorrentes), uma ocorrência, uma única instância ou uma exceção.
- Obter eventos
- Sincronizar eventos
- Localizar horários de reunião
- Criar eventos
- Atualizar eventos
- Responder a eventos
- Excluir eventos
- Obter anexos
- Criar anexos
- Excluir anexos
- Receber lembretes
- Adiar lembretes
- Ignorar lembretes
Operações de calendário
Um calendário funciona como um contêiner para eventos. Um usuário pode ter vários calendários. No Office 365, cada calendário pode ser atribuído a um grupo de calendários.
Operações do grupo de calendário
Grupos de calendário são uma maneira de organizar vários calendários. Os usuários podem adicionar vários calendários em um único grupo de calendários no Outlook ou no Outlook Web App. Isso facilita a exibição rápida de todos os calendários dentro do grupo.
Observação
O Outlook.com tem suporte apenas para o grupo de calendários padrão que é acessível pelo atalho ../me/calendars
. Você não pode excluir esse grupo de calendários ou criar outro grupo de calendários.
- Obter grupos de calendários
- Criar grupos de calendários
- Atualizar grupos de calendários
- Excluir grupos de calendários
Consulte também
- Recurso de evento da API REST
- Recurso de calendário da API REST
- Recursos de grupo de calendário da API REST
Uso da API REST de Calendário
Autenticação
Como outra API REST do Outlook, para cada solicitação à API de Calendário, você deve incluir um token de acesso válido. A obtenção de um token de acesso exige que você se registre e identifique seu aplicativo, e obtenha a autorização adequada.
Você pode saber mais sobre algumas opções simplificadas de registro e autorização. Tenha isso em mente ao prosseguir com as operações específicas na API de Calendário.
Escopos para acessar calendários compartilhados
Os calendários do Office 365 e do Outlook.com oferecem suporte ao compartilhamento. Um usuário que criou um calendário pode compartilhar o calendário com outros usuários. Os seguintes escopos são necessários para acessar um calendário compartilhado com esse usuário:
- Para acesso de leitura:
https://outlook.office.com/calendars.read.shared
- Para acesso de leitura/gravação:
https://outlook.office.com/calendars.readwrite.shared
Versão da API
A API REST de Calendário é suportada em todas as versões da API REST do Outlook. A funcionalidade pode variar dependendo da versão específica.
Usuário de destino
As solicitações da API de Calendário são sempre realizadas em nome do usuário atual.
Veja Usar a API REST do Outlook para obter mais informações comuns a todos os subconjuntos da API REST do Outlook.
Obter eventos
Obtenha uma coleção de eventos ou um evento.
Um corpo de evento pode estar em texto ou HTML.
Você pode usar o cabeçalho Prefer: outlook.body-content-type
para especificar o formato desejado retornado na propriedade Body em uma solicitação GET:
- Especifique
Prefer: outlook.body-content-type="text"
para obter um corpo de evento retornado em formato de texto. - Especifique
Prefer: outlook.body-content-type="html"
ou apenas pule o cabeçalho para retornar o corpo de evento no formato HTML.
Se você especificar um dos cabeçalhos, a resposta incluirá o cabeçalho Preference-Applied
correspondente como confirmação:
- Para solicitações de formato de texto:
Preference-Applied: outlook.body-content-type="text"
- Para solicitações de formato HTML:
Preference-Applied: outlook.body-content-type="html"
Todas as operações que recebem eventos de calendário podem usar o cabeçalho HTTP Prefer: outlook.timezone para especificar o fuso horário dos horários de início e término na resposta. Por exemplo, o cabeçalho Prefer: outlook.timezone define os horários de início e término na resposta como Hora Oficial do Leste dos EUA.
Prefer: outlook.timezone="Eastern Standard Time"
Se você não especificar o cabeçalho Prefer: outlook.timezone, os horários de início e término na resposta retornarão para UTC. Confira esta lista para ver os nomes de fuso horário suportados.
Você pode usar as propriedades OriginalStartTimeZone e OriginalEndTimeZone no recurso Evento para descobrir o fuso horário usado quando o evento foi criado.
- Obter uma visão de calendário
- Obter eventos mestre da série e únicos
- Obter instâncias de evento
- Obter um evento
Obter uma visão de calendário
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obtenha as ocorrências, exceções e instâncias únicas de eventos em uma visão de calendário definida por um intervalo de tempo, a partir do calendário principal do usuário (../me/calendarview
) ou de um calendário diferente.
GET https://outlook.office.com/api/v2.0/me/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
GET https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros do cabeçalho | ||
Prefer: | outlook.timezone | O fuso horário padrão para eventos na resposta. |
Parâmetros de URL | ||
calendar_id | cadeia de caracteres | ID do calendário, se você obtiver uma visão de um calendário específico. |
start_datetime | datetimeoffset | A data e o horário em que o evento inicia. |
end_datetime | datetimeoffset | A data e o horário em que o evento termina. |
Use o cabeçalho Prefer: outlook.timezone para especificar o fuso horário a ser usado para os horários de início e término do evento na resposta. Se o evento foi criado em um fuso horário diferente, os horários de início e término serão ajustados para o fuso horário especificado.
Confira esta lista para ver os nomes de fuso horário suportados. Se o cabeçalho Prefer: outlook.timezone não estiver especificado, os horários de início e término retornarão para UTC.
Observação
Por padrão, cada evento na resposta inclui todas as suas propriedades. Use $select
para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada. Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.
Por exemplo, obtenha a visão de calendário para o mês de outubro, retornando apenas a propriedade Subject para cada evento. Se o cabeçalho Prefer: outlook.timezone não estiver incluído na solicitação, o fuso horário será UTC.
GET https://outlook.office.com/api/v2.0/me/calendarview?startDateTime=2014-10-01T01:00:00&endDateTime=2014-10-31T23:00:00&$select=Subject
Tipo de resposta
Os eventos expandidos no intervalo de tempo especificado.
Obter eventos mestre da série e únicos
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obter uma coleção de eventos mestre de série e de instância única do calendário principal do usuário (../me/events
) ou de um calendário diferente. Para obter instâncias de evento expandidas, você pode obter a visão de calendário ou obter as instâncias de um evento.
GET https://outlook.office.com/api/v2.0/me/events
GET https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}/events
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros do cabeçalho | ||
Prefer: | outlook.timezone | O fuso horário padrão para eventos na resposta. |
Parâmetros de URL | ||
calendar_id | cadeia de caracteres | ID do calendário, se você estiver obtendo eventos de um calendário específico. |
Use o cabeçalho Prefer: outlook.timezone para especificar o fuso horário a ser usado para os horários de início e término do evento na resposta. Se o evento foi criado em um fuso horário diferente, os horários de início e término serão ajustados para o fuso horário especificado.
Confira esta lista para ver os nomes de fuso horário suportados. Se o cabeçalho Prefer: outlook.timezone não estiver especificado, os horários de início e término retornarão para UTC.
Observação
Cada evento na resposta inclui todas as suas propriedades. Use $select
para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada. Veja o próximo exemplo. Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.
O exemplo a seguir mostra como usar $select
para especificar retornando apenas as propriedades Subject, Organizer, Start e End de cada evento na resposta. Veja a primeira resposta de exemplo em Obter um evento (REST) para obter uma lista completa das propriedades que serão retornadas para um evento se você não usar $select
.
Exemplo de solicitação
GET https://outlook.office.com/api/v2.0/me/events?$select=Subject,Organizer,Start,End
Exemplo de resposta
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events(Subject,Organizer,Start,End)",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI28tEyDAAA=')",
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAA/LpDWw==\"",
"Id": "AAMkAGI28tEyDAAA=",
"Subject": "Scrum",
"Start": {
"DateTime": "2015-11-02T17:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2015-11-02T17:30:00",
"TimeZone": "Pacific Standard Time"
},
"Organizer": {
"EmailAddress": {
"Name": "user0TestUser",
"Address": "user0@a830edad9050849NDA1.onmicrosoft.com"
}
}
},
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI28tEyCAAA=')",
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAA/LpDWg==\"",
"Id": "AAMkAGI28tEyCAAA=",
"Subject": "team lunch",
"Start": {
"DateTime": "2015-11-02T00:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2015-11-03T00:00:00",
"TimeZone": "Pacific Standard Time"
},
"Organizer": {
"EmailAddress": {
"Name": "user0TestUser",
"Address": "user0@a830edad9050849NDA1.onmicrosoft.com"
}
}
},
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2ADTG93AAA=')",
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x49w==\"",
"Id": "AAMkAGI2G93AAA=",
"Subject": "Weekly Meeting on Contoso Project",
"Start": {
"DateTime": "2014-10-13T21:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2014-10-13T22:00:00",
"TimeZone": "Pacific Standard Time"
},
"Organizer": {
"EmailAddress": {
"Name": "Alex D",
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
}
}
},
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG92AAA=')",
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x49g==\"",
"Id": "AAMkAGI2TG92AAA=",
"Subject": "Daily Team Meeting",
"Start": {
"DateTime": "2014-10-13T18:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2014-10-13T18:30:00",
"TimeZone": "Pacific Standard Time"
},
"Organizer": {
"EmailAddress": {
"Name": "Alex D",
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
}
}
},
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG91AAA=')",
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x47Q==\"",
"Id": "AAMkAGI2TG91AAA=",
"Subject": "Rob:Alex 1:1",
"Start": {
"DateTime": "2014-10-15T16:30:00",
"TimeZone": "Pacific Standard Time"
},
"End": "2014-10-15T17:30:00Z",
"Organizer": {
"EmailAddress": {
"Name": "Alex D",
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
}
}
},
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG90AAA=')",
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x46g==\"",
"Id": "AAMkAGI2TG90AAA=",
"Subject": "Thanksgiving Holiday",
"Start": {
"DateTime": "2015-11-26T00:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2015-11-27T00:00:00",
"TimeZone": "Pacific Standard Time"
},
"Organizer": {
"EmailAddress": {
"Name": "Alex D",
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
}
}
},
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG9zAAA=')",
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x46Q==\"",
"Id": "AAMkAGI2TG9zAAA=",
"Subject": "Thanksgiving Holiday",
"Start": {
"DateTime": "2014-11-27T00:00:00"
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2014-11-28T00:00:00",
"TimeZone": "Pacific Standard Time"
},
"Organizer": {
"EmailAddress": {
"Name": "Alex D",
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
}
}
},
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG9yAAA=')",
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x49Q==\"",
"Id": "AAMkAGI2TG9yAAA=",
"Subject": "New Year's Day Holiday",
"Start": {
"DateTime": "2015-01-01T00:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2015-01-02T00:00:00",
"TimeZone": "Pacific Standard Time"
},
"Organizer": {
"EmailAddress": {
"Name": "Alex D",
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
}
}
},
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG9xAAA=')",
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x45w==\"",
"Id": "AAMkAGI2TG9xAAA=",
"Subject": "Christmas Holiday",
"Start": {
"DateTime": "2014-12-25T00:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2014-12-26T00:00:00",
"TimeZone": "Pacific Standard Time"
},
"Organizer": {
"EmailAddress": {
"Name": "Alex D",
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com"
}
}
}
]
}
Obter instâncias de evento
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Você pode obter as instâncias (ocorrências) de um evento para um intervalo de tempo especificado. Se o evento for um tipo SeriesMaster, isso retornará as ocorrências e exceções do evento no intervalo de tempo especificado.
GET https://outlook.office.com/api/v2.0/me/events/{event_id}/instances?startDateTime={start_datetime}&endDateTime={end_datetime}
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros do cabeçalho | ||
Prefer: | outlook.timezone | O fuso horário padrão para eventos na resposta. |
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. |
start_datetime | datetimeoffset | A data e o horário em que o evento inicia. |
end_datetime | datetimeoffset | A data e o horário UTC em que o evento termina. |
Use o cabeçalho Prefer: outlook.timezone para especificar o fuso horário a ser usado para os horários de início e término do evento na resposta. Se o evento foi criado em um fuso horário diferente, os horários de início e término serão ajustados para o fuso horário especificado.
Confira esta lista para ver os nomes de fuso horário suportados. Se o cabeçalho Prefer: outlook.timezone não estiver especificado, os horários de início e término retornarão para UTC.
Tipo de resposta
A coleção de eventos solicitada.
Observação
Por padrão, cada evento na resposta inclui todas as suas propriedades. Use $select
para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada. Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.
Por exemplo, obtenha as instâncias de um evento específico para o mês de outubro e inclua apenas as propriedades Subject, Start e End de cada instância:
GET https://outlook.office.com/api/v2.0/me/events/AAMkAGE0MGM1Y2M5LWEAAA=/instances?startDateTime=2014-10-01T01:00:00Z&endDateTime=2014-10-31T23:00:00Z&$select=Subject,Start,End
Obter um evento
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obtenha um evento por ID.
GET https://outlook.office.com/api/v2.0/me/events/{event_id}
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros do cabeçalho | ||
Prefer: | outlook.timezone | O fuso horário padrão para eventos na resposta. |
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. |
Use o cabeçalho Prefer: outlook.timezone para especificar o fuso horário a ser usado para os horários de início e término do evento na resposta. Se o evento foi criado em um fuso horário diferente, os horários de início e término serão ajustados para o fuso horário especificado.
Confira esta lista para ver os nomes de fuso horário suportados. Se o cabeçalho Prefer: outlook.timezone não estiver especificado, os horários de início e término retornarão para UTC.
Exemplo de solicitação
GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2TG93AAA=
Exemplo de resposta
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG93AAA=')",
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x48w==\"",
"Id": "AAMkAGI2TG93AAA=",
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x48w==",
"Categories": [],
"CreatedDateTime": "2014-10-19T23:13:47.3959685Z",
"LastModifiedDateTime": "2014-10-19T23:13:47.6772234Z",
"Subject": "Weekly Meeting on Contoso Project",
"BodyPreview": "Setting up some time to review the budget and planning on the Contoso Project",
"Body": {
"ContentType": "HTML",
"Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nSetting up some time to review the budget and planning on the Contoso Project\r\n</body>\r\n</html>\r\n"
},
"Importance": "Normal",
"HasAttachments": false,
"Start": {
"DateTime": "2014-10-13T21:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2014-10-13T22:00:00",
"TimeZone": ""Pacific Standard Time"
},
"Location": {
"DisplayName": "Alex's Office",
"Address": null
},
"ShowAs": "Busy",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"Type": "SeriesMaster",
"SeriesMasterId": null,
"Attendees": [
{
"EmailAddress": {
"Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
"Name": "Janet Schorr"
},
"Status": {
"Response": "None",
"Time": "0001-01-01T00:00:00Z"
},
"Type": "Required"
},
{
"EmailAddress": {
"Address": "pavelb@a830edad9050849NDA1.onmicrosoft.com",
"Name": "Pavel Bansky"
},
"Status": {
"Response": "None",
"Time": "0001-01-01T00:00:00Z"
},
"Type": "Required"
}
],
"Recurrence": {
"Pattern": {
"Type": "Weekly",
"Interval": 1,
"Month": 0,
"Index": "First",
"FirstDayOfWeek": "Sunday",
"DayOfMonth": 0,
"DaysOfWeek": [
"Monday"
]
},
"RecurrenceTimeZone": "Pacific Standard Time",
"Range": {
"Type": "NoEnd",
"StartDate": "2014-10-13",
"EndDate": "2014-11-13",
"NumberOfOccurrences": 0
}
},
"OriginalEndTimeZone": "Pacific Standard Time",
"OriginalStartTimeZone": "Pacific Standard Time",
"Organizer": {
"EmailAddress": {
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
"Name": "Alex D"
},
"OnlineMeetingUrl": null
}
}
Tipo de resposta
O evento solicitado.
Observação
Por padrão, a resposta inclui todas as propriedades do evento. Use $select
para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada. Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.
O exemplo a seguir mostra como usar $select
para especificar retornando apenas as propriedades Subject, Organizer, Start e End do evento.
Exemplo de solicitação
GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2TG93AAA=?$select=Subject,Organizer,Start,End
Exemplo de resposta
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG93AAA=')",
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x48w==\"",
"Id": "AAMkAGI2TG93AAA=",
"Subject": "Weekly Meeting on Contoso Project",
"Start": {
"DateTime": "2014-10-13T21:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2014-10-13T22:00:00",
"TimeZone": ""Pacific Standard Time"
},
"Organizer": {
"EmailAddress": {
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
"Name": "Alex D"
}
}
}
Sincronizar eventos
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
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 umskipToken
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:
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.)
Se a primeira resposta retornar o cabeçalho Preference-Applied: odata.track-changes, você poderá prosseguir com a sincronização.
Faça uma segunda solicitação GET. Especifique o cabeçalho Prefer: odata.track-changes e o deltaToken retornado do primeiro GET para determinar se há algum evento adicional. A segunda solicitação retornará eventos adicionais e um skipToken se houver mais eventos disponíveis, ou um deltaToken se o último evento tiver sido sincronizado. Nesse caso, você pode parar.
Continue a sincronização enviando uma chamada GET e incluindo um skipToken retornado da chamada anterior. Pare quando você obtiver uma resposta final que contenha o cabeçalho @odata.deltaLink com um deltaToken novamente, indicando que a sincronização está concluída.
Veja a sintaxe das chamadas iniciais e subsequentes em uma série de sincronização.
Sincronizar no calendário padrão
Solicitação inicial:
GET https://outlook.office.com/api/v2.0/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
Segunda ou primeira solicitação de uma série seguinte:
GET https://outlook.office.com/api/v2.0/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$deltatoken={delta_token}
Terceira ou solicitação subsequente na mesma série:
GET https://outlook.office.com/api/v2.0/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$skiptoken={skip_token}
Sincronizar em um calendário específico
Solicitação inicial:
GET https://outlook.office.com/api/v2.0/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
Segunda ou primeira solicitação de uma série seguinte:
GET https://outlook.office.com/api/v2.0/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$deltatoken={delta_token}
Terceira ou solicitação subsequente na mesma série:
GET https://outlook.office.com/api/v2.0/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$skiptoken={skip_token}
Parâmetros
Parâmetro | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
user_context | cadeia de caracteres | O contexto do usuário. Você pode usar o valor 'me' para indicar o contexto do usuário atual. Você também pode usar o formato users/{upn}, no qual upn é o nome principal do usuário. Geralmente, é o endereço de email do usuário. |
calendar_id | cadeia de caracteres | ID do calendário, se você obtiver uma visão de um calendário específico. |
start_datetime | datetimeoffset | A data e o horário em que o evento inicia. |
end_datetime | datetimeoffset | A data e o horário em que o evento termina. |
delta_token | cadeia de caracteres | A sequência de caracteres deltaToken retornada como parte do valor de @odata.deltaLink na resposta de sincronização anterior. |
skip_token | cadeia de caracteres | A cadeia de caracteres skipToken retornada como parte do valor de @odata.nextLink na resposta de sincronização anterior. |
Observação
- Ao especificar "Prefer: odata.track-changes" na solicitação inicial, se a resposta suportar a sincronização, a resposta incluirá "Preference-applied: odata.track-changes" no cabeçalho.
- Se você tentar sincronizar um recurso que não é suportado ou se essa não for a solicitação de sincronização inicial, você não verá o cabeçalho "Preference-applied" na resposta.
- Você pode alterar a janela de tempo de mudança alterando os parâmetros de consulta startdatetime e enddatetime.
- Cada evento na resposta inclui todas as suas propriedades.
- Para uma série recorrente, uma resposta de sincronização inclui todo o evento para os eventos mestre e de exceção recorrentes.
- As instâncias de uma série recorrente são abreviadas e contêm apenas as propriedades Start e End. Você pode capturar o restante das informações do evento de ocorrência do evento mestre recorrente. Veja Recurso de evento para obter informações de referência.
- Não é possível usar os parâmetros de consulta
$filter
,$count
,$select
,$skip
,$top
, e$search
.
Tipo de resposta
Os eventos expandidos e eventos abreviados no intervalo de tempo especificado.
Exemplo
O exemplo a seguir mostra as solicitações de sincronização iniciais e secundárias para sincronizar o calendário padrão do usuário. Cada solicitação especifica o retorno de apenas um evento completo de cada vez:
- A resposta inicial retorna um evento, um
deltaLink
edeltaToken
. - A segunda solicitação usa
deltatoken
. A segunda resposta retorna um evento, umnextLink
eskipToken
.
Para concluir a sincronização, use o skipToken
retornado da solicitação de sincronização anterior até que a resposta de sincronização retorne um deltaLink
e deltaToken
. Nesse caso, esta série de sincronização está concluída. Salve o deltaToken
para a próxima série de sincronização.
Para mais informações, veja Sincronizar eventos em uma visão de calendário do Outlook.
Exemplo de solicitação inicial
GET https://outlook.office.com/api/v2.0/me/calendarview?startdatetime=2015-01-01T00:00:00Z&enddatetime=2015-04-10T00:00:00Z HTTP/1.1
Authorization: Bearer <token>
Prefer: odata.track-changes
Prefer: odata.maxpagesize=1
Exemplo de dados da resposta inicial
Preference-Applied: odata.track-changes
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarView",
"value": [
{
"@odata.id": "https://outlook.office.com/api/v2.0/Users('user0@contoso.com')/Events('asdas==')",
"@odata.etag": "W/\"L8Z+4Y4u7k+97uRKg==\"",
"Id": "AQMkANJAAAAA==",
"ChangeKey": "L8Z+AAAAARKg==",
"Categories": [
],
"DateTimeCreated": "2015-04-10T17:54:49.2725912Z",
"DateTimeLastModified": "2015-04-10T17:54:49.3038538Z",
"Subject": "Discuss the Calendar REST API",
"BodyPreview": "I think it will meet our requirements!",
"Body": {
"ContentType": "HTML",
"Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nI think it will meet our requirements!\r\n</body>\r\n</html>\r\n"
},
"Importance": "Normal",
"HasAttachments": false,
"Start": {
"DateTime": "2015-04-05T18:00:00",
"TimeZone": "Pacific Standard Time"
}
"End": {
"DateTime": "2015-04-05T19:00:00",
"TimeZone": "Pacific Standard Time"
}
"ReminderMinutesBeforeStart": "15",
"IsReminderOn": "true",
"Location": {
"DisplayName": "",
"Address": null
},
"ResponseStatus": {
"Response": "Organizer",
"Time": "0001-01-01T00:00:00Z"
},
"ShowAs": "Busy",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"Type": "SingleInstance",
"SeriesMasterId": null,
"Attendees": [
],
"Recurrence": null,
"OriginalEndTimeZone": "Pacific Standard Time",
"OriginalStartTimeZone": "Pacific Standard Time",
"Organizer": {
"EmailAddress": {
"Address": "user0@contoso.com",
"Name": "user0"
}
},
"iCalUId": "040000008200E9888E07599CCFA23",
"WebLink": "https://outlook.office.com/owa/?ItemID=AAAINJAAAAA%3D%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
"OnlineMeetingUrl": null
}
],
"@odata.deltaLink": "https://outlook.office.com/api/v2.0/me/calendarview/?startdatetime=2015-01-01T00%3a00%3a00Z&enddatetime=2015-04-10T00%3a00%3a00Z&%24deltatoken=v2%2cH4roCAAA%3d%2c1.0%2cFalse%2cA00%2c"
}
Exemplo de segunda solicitação
GET https://outlook.office.com/api/v2.0/me/calendarview?startdatetime=2015-01-01T00:00:00Z&enddatetime=2015-04-10T00:00:00Z&$deltatoken=v2%2cH4roCAAA%3d%2c1.0%2cFalse%2cA00%2c
Authorization: Bearer <token>
Prefer: odata.track-changes
Prefer: odata.maxpagesize=1
Exemplo de dados da segunda resposta
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarView/$delta",
"value": [
{
"@odata.id": "https://outlook.office.com/api/v2.0/Users('user0@contoso.com')/Events('AAMkAD0jAAA=')",
"@odata.etag": "W/\"P2fd7QAAAAAVFA==\"",
"Id": "AAMkADNkNmVlOTITVAAAAAA0jAAA=",
"ChangeKey": "P2fdmIU1QAAAAAVFA==",
"Categories": [
],
"DateTimeCreated": "2015-04-15T18:59:11.0226221Z",
"DateTimeLastModified": "2015-04-15T18:59:11.0694979Z",
"Subject": "1 hour",
"BodyPreview": "\u200b",
"Body": {
"ContentType": "HTML",
"Content": "<html><body>content</body></html>"
},
"Importance": "Normal",
"HasAttachments": false,
"Start": {
"DateTime": "2015-04-16T18:00:00",
"TimeZone": "Pacific Standard Time"
}
"End": {
"DateTime": "2015-04-16T19:00:00",
"TimeZone": Pacific Standard Time"
}
"ReminderMinutesBeforeStart": "15",
"IsReminderOn": "true",
"Location": {
"DisplayName": "",
"Address": {
"Street": "",
"City": "",
"State": "",
"CountryOrRegion": "",
"PostalCode": ""
}
},
"ResponseStatus": {
"Response": "Organizer",
"Time": "0001-01-01T00:00:00Z"
},
"ShowAs": "Busy",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"Type": "SingleInstance",
"SeriesMasterId": null,
"Attendees": [
],
"Recurrence": null,
"OriginalEndTimeZone": "Pacific Standard Time",
"OriginalStartTimeZone": "Pacific Standard Time",
"Organizer": {
"EmailAddress": {
"Address": "user0@contoso.com",
"Name": "user0"
}
},
"iCalUId": "040000008200E09BB89A316862",
"WebLink": "https://outlook.office.com/owa/?ItemID=AAMkADNkNmVlOAA%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
"OnlineMeetingUrl": null
}
],
"@odata.nextLink": "https://outlook.office.com/api/v2.0/me/calendarview/?startdatetime=2015-01-01T00%3a00%3a00Z&enddatetime=2015-08-10T00%3a00%3a00Z&%24skipToken=530c9d02ae1a4d96804538bd4d381546"
}
Localizar horários de reunião
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read.shared
- wl.calendars
- wl.contacts_calendars
Localize as sugestões de hora da reunião com base no organizador e na disponibilidade dos participantes, assim como nas restrições de horário ou local especificadas como parâmetros.
Esta operação aplica-se somente às caixas de correio do Office 365 (no Azure AD) e não às contas da Microsoft.
POST https://outlook.office.com/api/{version}/me/findmeetingtimes
Todos os parâmetros suportados estão listados a seguir. Dependendo do seu cenário, especifique os parâmetros necessários no corpo da solicitação da ação FindMeetingTimes.
Parâmetro | Tipo | Descrição | Obrigatório? |
---|---|---|---|
Attendees | Coleção (AttendeeBase) | Participantes ou recursos para a reunião. Uma coleção vazia faz com que FindMeetingTimes procure horários livres apenas para o organizador. | Opcional |
IsOrganizerOptional | Edm.Boolean | Especifique true se o organizador não tiver necessariamente que comparecer. O padrão é false . |
Opcional |
LocationConstraint | LocationConstraint | Os requisitos do organizador sobre o local da reunião, tal como se é necessário sugerir de um local de encontro, ou há locais específicos apenas onde a reunião pode ocorrer. | Opcional |
MaxCandidates | Edm.Int32 | O número máximo de sugestões de reunião a serem retornadas na resposta. | Opcional |
MeetingDuration | Edm.Duration | A duração da reunião expressa no formato ISO 8601 para durações, por exemplo, PT1H representa 1 hora. Se nenhuma duração da reunião for especificada, FindMeetingTimes usará o padrão de 30 minutos. |
Opcional |
MinimumAttendeePercentage | Edm.Double | A confiança mínima exigida para um intervalo de tempo a ser retornado na resposta. É um valor % variando de 0 a 100. | Opcional |
ReturnSuggestionReasons | Edm.Boolean | Especifique true para retornar uma razão para cada sugestão de reunião na propriedade SuggestionReason. O padrão é false para não retornar essa propriedade. |
Opcional |
TimeConstraint | TimeConstraint | Qualquer restrição de tempo para uma reunião, incluindo a natureza da reunião (ActivityDomain) e possíveis períodos de reunião (TimeSlots). FindMeetingTimes pressupõe ActivityDomain como Work se você não especificar esse parâmetro. |
Opcional |
FindMeetingTimes verifica o status de disponibilidade nos calendários principais do organizador e dos participantes. Com base nos parâmetros especificados, a ação sugere os melhores horários de reunião possíveis. A tabela a seguir descreve as restrições que você pode especificar no parâmetro TimeConstraint.
Valor ActivityDomain em TimeConstraint | Sugestões de horário para reuniões |
---|---|
Work | As sugestões estão dentro do horário de trabalho do usuário, que é definido na configuração do calendário do usuário e pode ser personalizado pelo usuário ou pelo administrador. O horário de trabalho padrão é de segunda a sexta, das 8h às 17h, na configuração de fuso horário para a caixa de correio. Este é o valor padrão se nenhuma ActivityDomain for especificada. |
Personal | As sugestões estão dentro do horário de trabalho do usuário e nos sábados e domingos. O padrão é de segunda a domingo, das 8h às 17h, no fuso horário definido para a caixa de correio. |
Unrestricted | As sugestões podem ser todas as horas do dia, todos os dias da semana. |
Unknown | Não use esse valor, pois ele será preterido no futuro. No momento, comporta-se da mesma forma que Trabalho. Altere qualquer código existente para usar Work, Personal ou Unrestricted conforme apropriado. |
Tipo de resposta
Um MeetingTimeSuggestionsResult que inclui uma coleção de sugestões de reuniões, cada uma delas do tipo MeetingTimeSuggestion, e uma propriedade EmptySuggestionsReason.
Cada sugestão é definida como MeetingTimeSuggestion, com os participantes tendo um nível de confiança de 50% de participação como padrão ou um percentual específico definido no parâmetro MinimumAttendeePercentage.
Por padrão, cada sugestão de horário de reunião é retornada em UTC. Aplique o cabeçalho de solicitação Prefer: outlook.timezone
para que as sugestões de horário de reunião sejam reajustadas em um fuso horário diferente, por exemplo:
Prefer: outlook.timezone="Pacific Standard Time"
Se FindMeetingTimes não puder retornar nenhuma sugestão de reunião, a resposta indicará um motivo na propriedade EmptySuggestionsReason. Com base nesse valor, você pode ajustar melhor os parâmetros e chamar FindMeetingTimes novamente.
Observação
No momento, FindMeetingTimes pressupõe que qualquer Attendee que for uma pessoa (em vez de um recurso) será um participante obrigatório. Portanto, especifique Required
para uma pessoa e Resource
para um recurso na propriedade Type correspondente, como parte do parâmetro de coleção Attendees.
Cada exemplo abaixo chama FindMeetingTimes e varia de acordo com as restrições de disponibilidade, tempo e localização do participante, conforme descrito a seguir:
- Encontrar horário e local de reunião com os participantes
- Encontrar horário de reunião em um local conhecido e obter um motivo para cada sugestão
- Encontrar horário de reunião, mas nenhum participante está disponível
- Encontrar horário de reunião, mas apenas alguns participantes estão disponíveis
- Encontrar intervalos de tempo livres apenas para o usuário conectado
Encontrar horário e local de reunião com participantes específicos
Encontre horários e locais de reunião especificando os seguintes parâmetros no corpo da solicitação:
- Attendees
- TimeConstraint
- MeetingDuration
Exemplo de solicitação
O exemplo a seguir sugere horários e locais de reunião levando em consideração a disponibilidade do organizador e do participante durante o horário de trabalho no intervalo de tempo de reunião solicitado e o período solicitado.
POST https://outlook.office.com/api/v2.0/me/findmeetingtimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json
{
"Attendees": [
{
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
}
],
"TimeConstraint": {
"ActivityDomain":"Work",
"Timeslots": [
{
"Start": {
"DateTime": "2016-05-20T07:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T17:00:00",
"TimeZone": "Pacific Standard Time"
}
}
]
},
"MeetingDuration": "PT1H"
}
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
"MeetingTimeSuggestions": [
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-20T10:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T11:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
{
"Attendee": {
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
},
"Availability": "Free"
}
],
"Locations": [
{
"DisplayName": "Tokyo conference room",
"LocationEmailAddress": "",
"LocationUri": "",
"Address": null,
"Coordinates": null
}
]
},
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-20T11:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T12:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
{
"Attendee": {
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
},
"Availability": "Free"
}
],
"Locations": [
{
"DisplayName": "Paris conference room",
"LocationEmailAddress": "",
"LocationUri": "",
"Address": null,
"Coordinates": null
}
]
}
],
"EmptySuggestionsReason": ""
}
Encontrar horário de reunião em um local conhecido e obter um motivo para cada sugestão
Encontre um horário de reunião em um local predeterminado e solicite um motivo para cada sugestão, especificando os seguintes parâmetros no corpo da solicitação:
- Attendees
- LocationConstraint
- TimeConstraint
- MeetingDuration
- ReturnSuggestionReasons
Ao definir o parâmetro ReturnSuggestionReasons , você também obtém uma explicação para cada sugestão na propriedade SuggestionReason, se FindMeetingTimes retornar qualquer sugestão.
Exemplo de solicitação
POST https://outlook.office.com/api/v2.0/me/findmeetingtimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json
{
"Attendees": [
{
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
}
],
"LocationConstraint": {
"IsRequired": "false",
"SuggestLocation": "false",
"Locations": [
{
"ResolveAvailability": "false",
"DisplayName": "Conf room Hood"
}
]
},
"TimeConstraint": {
"ActivityDomain":"Work",
"Timeslots": [
{
"Start": {
"DateTime": "2016-05-20T07:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T17:00:00",
"TimeZone": "Pacific Standard Time"
}
}
]
},
"MeetingDuration": "PT2H",
"ReturnSuggestionReasons": "true"
}
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
"MeetingTimeSuggestions": [
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-20T10:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T12:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
{
"Attendee": {
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
},
"Availability": "Free"
}
],
"Locations": [
{
"DisplayName": "Conf room Hood"
}
],
"SuggestionReason": "Suggested because it is one of the nearest times when all attendees are available."
}
],
"EmptySuggestionsReason": ""
}
Encontrar horário de reunião, mas nenhum participante está disponível
Encontre um horário de reunião em um local predeterminado especificando os seguintes parâmetros no corpo da solicitação:
- Attendees
- LocationConstraint
- TimeConstraint
- MeetingDuration
Neste exemplo, com base em parâmetros especificados e disponibilidade do participante, FindMeetingTimes não pode retornar nenhuma sugestão e, em vez disso, retorna um motivo AttendeesUnavailable
na propriedade EmptySuggestionsReason.
Veja outros motivos possíveis para não retornar qualquer sugestão de reunião.
Exemplo de solicitação
POST https://outlook.office.com/api/v2.0/me/findmeetingtimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json
{
"Attendees": [
{
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
}
],
"LocationConstraint": {
"IsRequired": "false",
"SuggestLocation": "false",
"Locations": [
{
"ResolveAvailability": "false",
"DisplayName": "Conf room Hood"
}
]
},
"TimeConstraint": {
"Timeslots": [
{
"Start": {
"DateTime": "2016-05-20T7:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T14:00:00",
"TimeZone": "Pacific Standard Time"
}
}
]
},
"MeetingDuration": "PT2H"
}
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
"MeetingTimeSuggestions": [
],
"EmptySuggestionsReason": "AttendeesUnavailable"
}
Encontrar horário de reunião, mas apenas alguns participantes estão disponíveis
Encontre um horário de reunião em um local predeterminado especificando os seguintes parâmetros no corpo da solicitação:
- Attendees
- LocationConstraint
- TimeConstraint
- MeetingDuration
- ReturnSuggestionReasons
- MinimumAttendeePercentage
Neste exemplo, somente um dos dois participantes está disponível. Cada sugestão de reunião que FindMeetingTimes retorna inclui:
- A disponibilidade de cada participante
- Uma Confiança de reunião computada, que é o percentual médio de chance dos participantes estarem presentes. Esse valor deve atender ao requisito de 60% especificado em MinimumAttendeePercentage.
- Uma SuggestionHint, tendo em vista que o parâmetro ReturnSuggestionReasons está definido.
Encontre mais informações sobre a confiança de uma reunião.
Exemplo de solicitação
POST https://outlook.office.com/api/v2.0/me/findmeetingtimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json
{
"Attendees": [
{
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
},
{
"Type": "Optional",
"EmailAddress": {
"Name": "Dana",
"Address": "danas@prosewareltd.onmicrosoft.com"
}
}
],
"LocationConstraint": {
"IsRequired": "false",
"SuggestLocation": "false",
"Locations": [
{
"ResolveAvailability": "false",
"DisplayName": "Conf room Hood"
}
]
},
"TimeConstraint": {
"ActivityDomain":"Work",
"Timeslots": [
{
"Start": {
"DateTime": "2016-05-20T09:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T17:00:00",
"TimeZone": "Pacific Standard Time"
}
}
]
},
"MeetingDuration": "PT1H",
"ReturnSuggestionReasons": "true",
"MinimumAttendeePercentage": "60"
}
Exemplo de resposta
Código de status: 200
{
"@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
"MeetingTimeSuggestions":[
{
"MeetingTimeSlot":{
"Start":{
"DateTime":"2016-05-20T10:00:00.0000000",
"TimeZone":"Pacific Standard Time"
},
"End":{
"DateTime":"2016-05-20T11:00:00.0000000",
"TimeZone":"Pacific Standard Time"
}
},
"Confidence":100.0,
"OrganizerAvailability":"Free",
"AttendeeAvailability":[
{
"Attendee":{
"Type":"Required",
"EmailAddress":{
"Name": "Fanny",
"Address":"fannyd@prosewareltd.onmicrosoft.com"
}
},
"Availability":"Free"
},
{
"Attendee":{
"Type":"Required",
"EmailAddress":{
"Name": "Dana",
"Address":"danas@prosewareltd.onmicrosoft.com"
}
},
"Availability":"Free"
}
],
"Locations":[
{
"DisplayName":"Conf room Hood"
}
],
"SuggestionReason":"Suggested because it is one of the nearest times when most attendees are available."
},
{
"MeetingTimeSlot":{
"Start":{
"DateTime":"2016-05-20T11:00:00.0000000",
"TimeZone":"Pacific Standard Time"
},
"End":{
"DateTime":"2016-05-20T12:00:00.0000000",
"TimeZone":"Pacific Standard Time"
}
},
"Confidence":74.5,
"OrganizerAvailability":"Free",
"AttendeeAvailability":[
{
"Attendee":{
"Type":"Required",
"EmailAddress":{
"Name": "Fanny",
"Address":"fannyd@prosewareltd.onmicrosoft.com"
}
},
"Availability":"Free"
},
{
"Attendee":{
"Type":"Required",
"EmailAddress":{
"Name": "Dana",
"Address":"danas@prosewareltd.onmicrosoft.com"
}
},
"Availability":"Unknown"
}
],
"Locations":[
{
"DisplayName":"Conf room Hood"
}
],
"SuggestionReason":"Suggested because it is one of the nearest times when most attendees are available."
}
],
"EmptySuggestionsReason":""
}
Encontrar intervalos de tempo livres apenas para o usuário conectado
Encontre intervalos de tempo livres no calendário principal do usuário conectado em qualquer horário da semana em um intervalo de datas, especificando os seguintes parâmetros no corpo da solicitação:
- TimeConstraint
- MeetingDuration
Exemplo de solicitação
Este exemplo mostra intervalos de tempo livres de uma hora, conforme especificado por MeetingDuration, no calendário principal do usuário conectado, a qualquer momento da semana em um intervalo de datas especificado por TimeConstraint.
POST https://outlook.office.com/api/v2.0/me/findmeetingtimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json
{
"Attendees": [],
"TimeConstraint": {
"ActivityDomain": "Unrestricted",
"Timeslots": [
{
"Start": {
"DateTime": "2016-05-20T06:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-22T23:00:00",
"TimeZone": "Pacific Standard Time"
}
}
]
},
"MeetingDuration": "PT1H"
}
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
"MeetingTimeSuggestions": [
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-20T06:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T07:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
],
"Locations": [
]
},
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-21T09:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-21T10:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
],
"Locations": [
]
},
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-22T19:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-22T20:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
],
"Locations": [
]
}
],
"EmptySuggestionsReason": ""
}
Obter salas de reunião (versão prévia)
No momento, este recurso está disponível na versão beta. Para saber mais, na tabela de conteúdo à esquerda, vá para a seção Referência da API REST do Office 365 e selecione beta.
Criar eventos
Criar um evento no calendário
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Crie um evento no calendário principal do usuário ou em um calendário específico postando no ponto de extremidade events
do calendário. Ao criar o evento, o servidor envia convites para todos os participantes.
POST https://outlook.office.com/api/v2.0/me/events
POST https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}/events
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
calendar_id | cadeia de caracteres | A ID do calendário. |
Exemplo de solicitação
POST https://outlook.office.com/api/v2.0/me/events
Content-Type: application/json
{
"Subject": "Discuss the Calendar REST API",
"Body": {
"ContentType": "HTML",
"Content": "I think it will meet our requirements!"
},
"Start": {
"DateTime": "2014-02-02T18:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2014-02-02T19:00:00",
"TimeZone": "Pacific Standard Time"
},
"Attendees": [
{
"EmailAddress": {
"Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
"Name": "Janet Schorr"
},
"Type": "Required"
}
]
}
Exemplo de resposta
Código do status: 201
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGE4v1RAAA=')",
"@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeNheA==\"",
"Id": "AAMkAGE4v1RAAA=",
"ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeNheA==",
"Categories": [],
"CreatedDateTime": "2014-01-22T20:56:10.1058291Z",
"LastModifiedDateTime": "2014-01-22T20:56:10.3402186Z",
"Subject": "Discuss the Calendar REST API",
"BodyPreview": "I think it will meet our requirements!",
"Body": {
"ContentType": "HTML",
"Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nI think it will meet our requirements!\r\n</body>\r\n</html>\r\n"
},
"Importance": "Normal",
"HasAttachments": false,
"Start": {
"DateTime": "2014-02-02T18:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2014-02-02T19:00:00",
"TimeZone": "Pacific Standard Time"
},
"Location": {
"DisplayName": "",
"Address": null
},
"ShowAs": "Busy",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"Type": "SingleInstance",
"SeriesMasterId": null,
"Attendees": [
{
"EmailAddress": {
"Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
"Name": "Janet Schorr"
},
"Status": {
"Response": "None",
"Time": "0001-01-01T00:00:00Z"
},
"Type": "Required"
}
],
"Recurrence": null,
"OriginalEndTimeZone": "Pacific Standard Time",
"OriginalStartTimeZone": "Pacific Standard Time",
"Organizer": {
"EmailAddress": {
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
"Name": "alexd"
}
},
"OnlineMeetingUrl": null
}
Tipo de resposta
O novo evento.
Por padrão, a resposta inclui todas as propriedades do novo evento. Use $select
para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada.
A seguir, veja um exemplo que inclui apenas as propriedades Start e End do novo evento na resposta.
POST https://outlook.office.com/api/v2.0/me/events?$Select=Start,End
Atualizar eventos
Atualizar um evento do calendário
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Altere um evento. Apenas as propriedades especificadas são alteradas. Se o usuário for o organizador, o servidor enviará atualizações de reunião para todos os participantes.
PATCH https://outlook.office.com/api/v2.0/me/events/{event_id}
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. |
Especifique qualquer propriedade de evento gravável no corpo da solicitação.
Exemplo de solicitação
PATCH https://outlook.office.com/api/v2.0/me/events/AAMkAGE0M4v1OAAA=
Content-Type: application/json
{
"Location": {
"DisplayName": "Your office",
"Address": null
}
}
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Events/$entity",
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGE0M4v1OAAA=')",
"@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeNheQ==\"",
"Id": "AAMkAGE0M4v1OAAA=",
"ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeNheQ==",
"Categories": [],
"CreatedDateTime": "2014-01-22T20:49:05.5657528Z",
"LastModifiedDateTime": "2014-01-22T21:14:17.4886416Z",
"Subject": "Discuss the Calendar REST API",
"BodyPreview": "I think it will meet our requirements!",
"Body": {
"ContentType": "HTML",
"Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nI think it will meet our requirements!\r\n</body>\r\n</html>\r\n"
},
"Importance": "Normal",
"HasAttachments": false,
"Start": {
"DateTime": "2014-02-02T18:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2014-02-02T19:00:00",
"TimeZone": "Pacific Standard Time"
},
"Location": {
"DisplayName": "Your office",
"Address": null
},
"ShowAs": "Busy",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"Type": "SingleInstance",
"SeriesMasterId": null,
"Attendees": [],
"Recurrence": null,
"OriginalEndTimeZone": "Pacific Standard Time",
"OriginalStartTimeZone": "Pacific Standard Time",
"Organizer": {
"EmailAddress": {
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
"Name": "alexd"
}
},
"OnlineMeetingUrl": null
}
Tipo de resposta
O evento atualizado. Se o usuário for o organizador, o servidor enviará atualizações de reunião para todos os participantes.
Por padrão, a resposta inclui todas as propriedades do evento atualizado. Use $select
para especificar somente as propriedades necessárias para um melhor desempenho. A propriedade Id é sempre retornada.
PATCH https://outlook.office.com/api/v2.0/me/events/AAMkAGE1MFKPQWAAA=?$select=Location
Responder a eventos
Aceitar o evento
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Aceitar o evento especificado.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/accept
Parâmetro | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. Obrigatório. |
Parâmetros do corpo | ||
Comentário | cadeia de caracteres | Texto incluído na resposta. Opcional. |
SendResponse | booliano | true se uma resposta deve ser enviada ao organizador; caso contrário, false . Opcional. O padrão é true . |
Exemplo de solicitação
POST https://outlook.office.com/api/v2.0/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/accept
Content-Type: application/json
{
"Comment": "Great idea!",
"SendResponse": "true"
}
Resposta
Uma resposta bem-sucedida é indicada por um código de resposta HTTP 202 Accepted.
Aceitar provisoriamente o evento
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Aceitar provisoriamente o evento especificado.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/tentativelyaccept
Parâmetro | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. Obrigatório. |
Parâmetros do corpo | ||
Comentário | cadeia de caracteres | Texto incluído na resposta. Opcional. |
SendResponse | booliano | true se uma resposta deve ser enviada ao organizador; caso contrário, false . Opcional. O padrão é true . |
Exemplo de solicitação
POST https://outlook.office.com/api/v2.0/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/tentativelyaccept
Content-Type: application/json
{
"Comment": "I'll confirm later!",
"SendResponse": "true"
}
Resposta
Uma resposta bem-sucedida é indicada por um código de resposta HTTP 202 Accepted.
Recusar o evento
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Recusar o convite para o evento especificado.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/decline
Parâmetro | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. Obrigatório. |
Parâmetros do corpo | ||
Comentário | cadeia de caracteres | Texto incluído na resposta. Opcional. |
SendResponse | booliano | true se uma resposta deve ser enviada ao organizador; caso contrário, false . Opcional. O padrão é true . |
Exemplo de solicitação
POST https://outlook.office.com/api/v2.0/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/decline
Content-Type: application/json
{
"Comment": "Sorry, maybe next time!",
"SendResponse": "true"
}
Resposta
Uma resposta bem-sucedida é indicada por um código de resposta HTTP 202 Accepted.
Encaminhar eventos (versão prévia)
No momento, este recurso está disponível apenas na versão beta. Para saber mais, na tabela de conteúdo à esquerda, vá para a seção Referência da API REST do Office 365 e selecione beta.
Excluir eventos
Excluir um evento do calendário
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Mova um evento para a pasta Itens Excluídos do usuário conectado. Se o evento for uma reunião e o usuário conectado for o organizador, o servidor enviará cancelamentos a todos os participantes.
DELETE https://outlook.office.com/api/v2.0/me/events/{event_id}
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. |
Exemplo de solicitação
DELETE https://outlook.office.com/api/v2.0/me/events/AAMkAGE0M4v1OAAA=
Exemplo de resposta
Status code: 204
Cancelar eventos (versão prévia)
No momento, este recurso está disponível apenas na versão beta. Para saber mais, na tabela de conteúdo à esquerda, vá para a seção Referência da API REST do Office 365 e selecione beta.
Obter anexos
Você pode obter uma coleção de anexos ou um único anexo.
Obter uma coleção de anexos
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obtenha os anexos de um evento específico.
Observação
Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.
GET https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. |
Tipo de resposta
Uma coleção de anexos que pode ser do tipo FileAttachment ou ItemAttachment.
Exemplo de solicitação
GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2NGTG9yAAA=/attachments
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Events('AAMkAGI2NG9yAAA%3D')/Attachments",
"value": [
{
"@odata.type": "#Microsoft.OutlookServices.FileAttachment",
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2NGTG9yAAA=')/Attachments('AAMkAGI2NGLwydGuOzcHf1FBlo=')",
"Id": "AAMkAGI2NGLwydGuOzcHf1FBlo=",
"LastModifiedDateTime": "2014-10-22T00:30:26Z",
"Name": "Company Party.docx",
"ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"Size": 11647,
"IsInline": false,
"ContentId": null,
"ContentLocation": null,
"ContentBytes": "UEsDBBQABgAIAAAAIQDfpNJs...AAF4pAAAAAA=="
}
]
}
Obter um anexo
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obter um anexo de um evento específico.
GET https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments/{attachment_id}
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. |
attachment_id | cadeia de caracteres | A ID do anexo. |
Observação
Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.
Tipo de resposta
O anexo de arquivo ou anexo de item solicitado.
Exemplo de solicitação
GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2WRAAADTG9yAAA=/attachments/AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Events('AAMkAGI2WRAAADTG9yAAA%3D')/Attachments/$entity",
"@odata.type": "#Microsoft.OutlookServices.FileAttachment",
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2WRAAADTG9yAAA=')/Attachments('AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=')",
"Id": "AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=",
"LastModifiedDateTime": "2014-10-22T00:30:26Z",
"Name": "Company Party.docx",
"ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"Size": 11647,
"IsInline": false,
"ContentId": null,
"ContentLocation": null,
"ContentBytes": "UEsDBBQABgAIAAAAIQD...AAF4pAAAAAA=="
}
Exemplo de solicitação ($expand em anexos)
O exemplo a seguir obtém e expande os dois anexos de referência em linha com as propriedades do evento.
GET https://outlook.office.com/api/v2.0/me/events('AAMkAGE1Mbs88AADggYEcAAA=')?$expand=attachments
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events/$entity",
"@odata.etag": "W/\"mODEKWhc/Um6lA3uPm7PPAAA4KZrtA==\"",
"id": "AAMkAGE1Mbs88AADggYEcAAA=",
"createdDateTime": "2016-03-22T22:19:58.1359352Z",
"lastModifiedDateTime": "2016-03-22T22:39:09.9335289Z",
"changeKey": "mODEKWhc/Um6lA3uPm7PPAAA4KZrtA==",
"categories": [
],
"originalStartTimeZone": "Pacific Standard Time",
"originalEndTimeZone": "Pacific Standard Time",
"responseStatus": {
"response": "organizer",
"time": "0001-01-01T00:00:00Z"
},
"iCalUId": "040000008200E00074C5B7101A82E008000000005895FCF78884D10100000000000000001000000099DD7CA6BCF37C4F9F7DAACCADDD6B89",
"reminderMinutesBeforeStart": 15,
"isReminderOn": true,
"hasAttachments": true,
"subject": "Plan Easter egg hunt!",
"body": {
"contentType": "html",
"content": "<html>\r\n<body>\r\nLet's get organized for this weekend's gathering.\r\n</body>\r\n</html>\r\n"
},
"bodyPreview": "Let's get organized for this weekend's gathering.",
"importance": "normal",
"sensitivity": "normal",
"start": {
"dateTime": "2016-03-26T17:00:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2016-03-26T18:00:00.0000000",
"timeZone": "UTC"
},
"location": {
"displayName": "",
"locationType": "default",
"address": {
"type": "unknown"
},
"coordinates": {
}
},
"locations": [
],
"isAllDay": false,
"isCancelled": false,
"isOrganizer": true,
"recurrence": null,
"responseRequested": true,
"seriesMasterId": null,
"showAs": "busy",
"type": "singleInstance",
"attendees": [
{
"status": {
"response": "none",
"time": "0001-01-01T00:00:00Z"
},
"type": "required",
"emailAddress": {
"name": "Randi Welch",
"address": "randiw@contoso.onmicrosoft.com"
}
}
],
"organizer": {
"emailAddress": {
"name": "Dana Swope",
"address": "danas@contoso.onmicrosoft.com"
}
},
"webLink": "https://outlook.office.com/owa/?ItemID=AAMkAGE1Mbs88AADggYEcAAA%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
"onlineMeetingUrl": null,
"attachments@odata.context": "https://outlook.office.com/api/beta/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events('AAMkAGE1Mbs88AADggYEcAAA%3D')/attachments",
"attachments": [
{
"@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
"id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=",
"lastModifiedDateTime": "2016-03-22T22:27:20Z",
"name": "Hydrangea picture",
"contentType": null,
"size": 412,
"isInline": false,
"sourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
"providerType": "oneDriveBusiness",
"thumbnailUrl": null,
"previewUrl": null,
"permission": "edit",
"isFolder": false
},
{
"@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
"id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAE1rHHth7YNLlR9WsgnODy0=",
"lastModifiedDateTime": "2016-03-22T22:39:09Z",
"name": "Koala picture",
"contentType": null,
"size": 382,
"isInline": false,
"sourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/koala.jpg",
"providerType": "oneDriveBusiness",
"thumbnailUrl": null,
"previewUrl": null,
"permission": "edit",
"isFolder": false
}
]
}
Exemplo de solicitação ($expand em itens de anexo aninhados)
O exemplo a seguir obtém um item de anexo aninhado.
GET https://outlook-sdf.office.com/api/v2.0/me/events/AAMkAGE1Mbs88AADUv0uFAAA=/attachments/AAMkAGE1Mbs88AADUv0uFAAABEgAQAL53d0u3BKBJmCxKVxZKBZ8=$expand=Microsoft.OutlookServices.ItemAttachment/Item
Exemplo de resposta
Status code: 200
{
"Id": "AAMkAGE1Mbs88AADUv0uFAAABEgAQAL53d0u3BKBJmCxKVxZKBZ8=",
"LastModifiedDateTime": "2017-04-25T20:05:55Z",
"Name": "RE: Changes to GetConditionMetadata handler",
"ContentType": null,
"Size": 78927,
"IsInline": false,
"Item": {
"Id": "",
"Name": "How to retrieve item attachment using Outlook REST API",
"ContentType": message/rfc822,
"Size": 71094,
"IsInline": false,
"LastModifiedDateTime": "2015-09-24T05:57:59Z",
}
}
Criar anexos
Você pode criar um anexo de arquivo ou criar um anexo de item para um evento.
Criar um anexo de arquivo
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Adicione um anexo de arquivo a um evento.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. |
Parâmetros do corpo | ||
@odata.type | cadeia de caracteres | #Microsoft.OutlookServices.FileAttachment |
Name | cadeia de caracteres | O nome do anexo. |
ContentBytes | binário | O arquivo a ser anexado. |
Tipo de resposta
O novo anexo de arquivo.
Criar um anexo de item
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Adicionar um anexo de item a um evento.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. |
Parâmetros do corpo | ||
@odata.type | cadeia de caracteres | #Microsoft.OutlookServices.ItemAttachment |
Name | cadeia de caracteres | O nome do anexo. |
Item | Uma entidade Mensagem, Evento ou Contato. | O item a ser anexado. |
Tipo de resposta
O novo anexo de item.
Criar um anexo de referência
Escopo mínimo necessário
https://outlook.office.com/calendars.readwrite
Adicione um anexo de referência a um evento.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
event_id | Cadeia de caracteres | ID do evento. |
Parâmetros do corpo | ||
@odata.type | Cadeia de caracteres | #Microsoft.OutlookServices.ReferenceAttachment |
Name | Cadeia de caracteres | O nome de exibição do anexo. Obrigatório. |
SourceUrl | Cadeia de caracteres | URL para obter o conteúdo do anexo. Se este for um URL para uma pasta, para que a pasta seja exibida corretamente no Outlook ou Outlook na Web, defina IsFolder como verdadeiro. Obrigatório. |
Especifique os parâmetros Name e SourceUrl e qualquer propriedade gravável do anexo de referência no corpo da solicitação.
Tipo de resposta
Exemplo de solicitação
O exemplo a seguir adiciona um anexo de referência a um evento existente. O anexo é um link para um arquivo do OneDrive for Business.
POST https://outlook.office.com/api/v2.0/me/events('AAMkAGE1Mbs88AADggYEcAAA=')/attachments
Content-Type: application/json
{
"@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
"Name": "Hydrangea picture",
"SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
"ProviderType": "oneDriveBusiness",
"Permission": "Edit",
"IsFolder": "False"
}
Exemplo de resposta
Código do status: 201 Created
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events('AAMkAGE1Mbs88AADggYEcAAA%3D')/attachments/$entity",
"@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
"Id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=",
"LastModifiedDateTime": "2016-03-22T22:27:20Z",
"Name": "Hydrangea picture",
"ContentType": null,
"Size": 412,
"IsInline": false,
"SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
"ProviderType": "oneDriveBusiness",
"ThumbnailUrl": null,
"PreviewUrl": null,
"Permission": "edit",
"IsFolder": false
}
Excluir anexos
Excluir um anexo de evento
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Exclua o anexo especificado de um evento. O anexo pode ser um anexo de arquivo ou anexo de item.
DELETE https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments/{attachment_id}
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
event_id | cadeia de caracteres | ID do evento. |
attachment_id | cadeia de caracteres | A ID do anexo. |
Exemplo de solicitação
DELETE https:/outlook.office.com/api/v2.0/me/events/AAMkAGE0MG4v1OAAA=/attachments/AAMkAGITG9yAAA=
Exemplo de resposta
Status code: 204
Receber lembretes
Obtenha uma lista de lembretes de eventos entre duas datas e horários de um calendário.
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
GET https://outlook.office.com/api/v2.0/me/ReminderView(StartDateTime='{DateTime}',EndDateTime='{DateTime}')
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros do cabeçalho | ||
Prefer: | outlook.timezone | O fuso horário padrão para eventos na resposta. |
Parâmetros de URL | ||
StartDateTime | cadeia de caracteres | A data e o horário de início dos lembretes retornados. |
EndDateTime | cadeia de caracteres | A data e o horário de término dos lembretes retornados. |
Use o cabeçalho Prefer: outlook.timezone para especificar o fuso horário a ser usado para os horários de início e término do evento na resposta. Se o evento foi criado em um fuso horário diferente, os horários de início e término serão ajustados para o fuso horário especificado.
Confira esta lista para ver os nomes de fuso horário suportados. Se o cabeçalho Prefer: outlook.timezone não estiver especificado, o fuso horário será definido como UTC.
Adiar lembretes
Adiar um lembrete até um novo horário.
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
POST https://outlook.office.com/api/v2.0/me/Events('{id}')/SnoozeReminder
Parâmetros obrigatórios | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
id | cadeia de caracteres | A ID do evento. |
Parâmetros do corpo | ||
NewReminderTime | DateTimeTimeZone | A nova data e hora para disparar o lembrete. |
Ignorar lembretes
Ignorar um lembrete disparado.
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
POST https://outlook.office.com/api/v2.0/me/Events({id})/DismissReminder
Parâmetros obrigatórios | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
id | cadeia de caracteres | A ID do evento. |
Obter calendários
Você pode obter uma coleção de calendários ou obter um calendário.
Obter uma coleção de calendários
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obter todos os calendários do usuário (calendars
) ou obter os calendários de um grupo de calendários específico.
GET https://outlook.office.com/api/v2.0/me/calendars
GET https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}/calendars
Observação
Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
calender_group_id | cadeia de caracteres | A ID do grupo de calendários. |
Exemplo de solicitação
https://outlook.office.com/api/v2.0/me/calendars
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars",
"value": [
{
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGI2TGuLAAA=')",
"Id": "AAMkAGI2TGuLAAA=",
"Name": "Calendar",
"Color": "Auto",
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
"CanShare":true,
"CanViewPrivateItems":true,
"CanEdit":true,
"Owner":{
"Name":"Fanny Downs",
"Address":"fannyd@adatum.onmicrosoft.com"
}
}
]
}
Obter um calendário
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obtenha um calendário por ID. Você pode obter o calendário principal do usuário usando o ponto de extremidade ../me/calendar
.
GET https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}
Observação
Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
calendar_id | cadeia de caracteres | A ID do calendário. |
Exemplo de solicitação
GET https://outlook.office.com/api/v2.0/me/calendars/AAMkAGI2TGuLAAA=
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars/$entity",
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGI2TGuLAAA=')",
"Id": "AAMkAGI2TGuLAAA=",
"Name": "Calendar",
"Color": "Auto",
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
"CanShare":true,
"CanViewPrivateItems":true,
"CanEdit":true,
"Owner":{
"Name":"Fanny Downs",
"Address":"fannyd@adatum.onmicrosoft.com"
}
}
Tipo de resposta
O calendário solicitado.
Criar calendários
Criar um calendário
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Crie um calendário no grupo de calendários padrão usando o atalho ../me/calendars
ou em um determinado grupo de calendários ao publicar no ponto de extremidade calendars
do grupo.
POST https://outlook.office.com/api/v2.0/me/calendars
POST https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}/calendars
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
calender_group_id | cadeia de caracteres | ID do grupo de calendários, se você estiver obtendo calendários de um grupo específico. |
Parâmetros do corpo | ||
Name | cadeia de caracteres | O nome do novo calendário. |
Exemplo de solicitação
POST https://outlook.office.com/api/v2.0/me/calendars
Content-Type: application/json
{
"Name": "Social"
}
Exemplo de resposta
Código do status: 201
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars/$entity",
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGE4xLHAAA=')",
"@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SQ==\"",
"Id": "AAMkAGE4xLHAAA=",
"Name": "Social",
"ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SQ==",
"CanShare":true,
"CanViewPrivateItems":true,
"CanEdit":true,
"Owner":{
"Name":"Fanny Downs",
"Address":"fannyd@adatum.onmicrosoft.com"
}
}
Tipo de resposta
O novo calendário.
Atualizar calendários
Atualizar um calendário
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Altere as propriedades graváveis de um calendário.
PATCH https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
calendar_id | cadeia de caracteres | A ID do calendário. |
Exemplo de solicitação
PATCH https://outlook.office.com/api/v2.0/me/calendars/AAMkAGE4xLIAAA=
Content-Type: application/json
{
"Name": "Social events"
}
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Calendars/$entity",
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGE4xLIAAA=')",
"@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Sw==\"",
"Id": "AAMkAGE4xLIAAA=",
"Name": "Social events",
"ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Sw==",
"CanShare":true,
"CanViewPrivateItems":true,
"CanEdit":true,
"Owner":{
"Name":"Fanny Downs",
"Address":"fannyd@adatum.onmicrosoft.com"
}
}
Tipo de resposta
O calendário atualizado.
Excluir calendários
Excluir um calendário
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
DELETE https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
calendar_id | cadeia de caracteres | A ID do calendário. |
Exemplo de solicitação
DELETE https://outlook.office.com/api/v2.0/me/calendars/AAMkAGE4xLIAAA=
Exemplo de resposta
Status code: 204
Obter grupos de calendários
Você pode obter uma coleção de grupos de calendários ou obter um grupo calendários.
Observação
O Outlook.com tem suporte apenas para o grupo de calendários padrão que é acessível pelo atalho ../me/calendars
.
Obter uma coleção de grupos de calendários
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obter os grupos de calendários em uma caixa de correio.
GET https://outlook.office.com/api/v2.0/me/calendargroups
Observação
Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.
Exemplo de solicitação
GET https://outlook.office.com/api/v2.0/me/calendargroups
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups",
"value": [
{
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuKAAA=')",
"Id": "AAMkAGI2TGuKAAA=",
"Name": "My Calendars",
"ClassId": "0006f0b7-0000-0000-c000-000000000046",
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+g=="
},
{
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuMAAA=')",
"Id": "AAMkAGI2TGuMAAA=",
"Name": "Other Calendars",
"ClassId": "0006f0b8-0000-0000-c000-000000000046",
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0/A=="
}
]
}
Tipo de resposta
A coleção de grupos de calendários solicitada.
Obter um grupo de calendários
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obter um grupo de calendários por ID.
GET https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}
Observação
Confira Parâmetros de consulta do OData para ver parâmetros de filtragem, classificação e paginação.
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
calendar_group_id | cadeia de caracteres | A ID do grupo de calendários. |
Exemplo de solicitação
GET https://outlook.office.com/api/v2.0/me/calendargroups/AAMkAGI2TGuKAAA=
Exemplo de resposta
Código de status: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups/$entity",
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuKAAA=')",
"Id": "AAMkAGI2TGuKAAA=",
"Name": "My Calendars",
"ClassId": "0006f0b7-0000-0000-c000-000000000046",
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+g=="
}
Tipo de resposta
O grupo de calendários solicitado.
Criar grupos de calendários
Criar um grupo de calendários. Name é a única propriedade gravável para um grupo de calendários.
Observação
O Outlook.com tem suporte apenas para o grupo de calendários padrão que é acessível pelo atalho ../me/calendars
. Você não pode criar outro grupo de calendários no Outlook.com.
Criar um grupo de calendários
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
POST https://outlook.office.com/api/v2.0/me/calendargroups
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetro de URL | ||
Parâmetros do corpo | ||
Name | cadeia de caracteres | O nome do grupo de calendários. |
Exemplo de solicitação
POST https://outlook.office.com/api/v2.0/me/calendargroups
Content-Type: application/json
{
"Name": "Birthdays"
}
Exemplo de resposta
Código do status: 201
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups/$entity",
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGE0M4xLGAAA=')",
"@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Rw==\"",
"Id": "AAMkAGE0M4xLGAAA=",
"Name": "Birthdays",
"ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Rw==",
"ClassId": "4d969bba-8942-42a0-ae33-c7d4410d1e11"
}
Tipo de resposta
O novo grupo de calendários.
Atualizar grupos de calendários
Atualizar um grupo de calendários
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Altere o nome de um grupo de calendários. Name é a única propriedade gravável do grupo de calendários.
PATCH https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
calendar_group_id | cadeia de caracteres | ID do grupo de calendários. |
Parâmetros do corpo | ||
Name | cadeia de caracteres | O nome do grupo de calendários atualizado. |
Exemplo de solicitação
PATCH https://outlook.office.com/api/v2.0/me/calendargroups/AAMkAGE0M4xLGAAA=
Content-Type: application/json
{
"Name": "Holidays"
}
Exemplo de resposta
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/CalendarGroups/$entity",
"@odata.id": "https://https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGE0MGM4xLGAAA=')",
"@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SA==\"",
"Id": "AAMkAGE0MGM4xLGAAA=",
"Name": "Holidays",
"ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SA==",
"ClassId": "4d969bba-8942-42a0-ae33-c7d4410d1e11"
}
Tipo de resposta
O grupo de calendários atualizado.
Excluir grupos de calendários
Observação
O Outlook.com tem suporte apenas para o grupo de calendários padrão que é acessível pelo atalho ../me/calendars
. Não exclua este grupo de calendários.
Excluir um grupo de calendários
Escopo mínimo necessário
Uma das seguintes opções:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
DELETE https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}
Parâmetro obrigatório | Tipo | Descrição |
---|---|---|
Parâmetros de URL | ||
calendar_group_id | cadeia de caracteres | A ID do grupo de calendários. |
Exemplo de solicitação
DELETE https://outlook.office.com/api/v2.0/me/calendargroups/AAMkAGE0MGM4xLGAAA=
Exemplo de resposta
Status code: 204
Próximas etapas
Se você estiver pronto para começar a criar um aplicativo ou apenas quiser aprender mais, temos tudo o que você precisa.
- Comece com as APIs REST de Email, Calendário e Contatos.
- Quer exemplos? Nós temos.
Se preferir, aprenda mais sobre como usar a plataforma do Office 365:
- API REST do Outlook no Centro de Desenvolvimento do Outlook
- Visão geral sobre desenvolvimento na plataforma do Office 365
- Autenticação de aplicativo do Office 365 e autorização de recursos
- Registrar manualmente seu aplicativo no AD do Azure para que ele possa acessar as APIs do Office 365
- Referência da API de Email
- Referência da API de Contatos
- API REST de Atribuições (versão prévia)
- API do OneDrive
- Referência de operações da API REST do Serviço de Descoberta
- Referência de recurso para as APIs REST de Email, Calendário, Contatos e Tarefa