Referencia de API de REST de las tareas de Outlook (versión 2.0)
Se aplica a: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com
La API de calendario proporciona acceso a eventos, calendario y datos de grupos de calendario protegidos por Azure Active Directory en Office 365, y a datos similares en cuentas de Microsoft específicamente en estos dominios: Hotmail.com, Live.com, MSN.com, Outlook.com y Passport.com.
Nota
- La excepción es la API para encontrar horas de reuniones, que se aplica solo a los buzones de Office 365 (en Azure AD) y no a las cuentas de Microsoft.
- Para simplificar la referencia, en el resto de este artículo se utiliza Outlook.com para englobar a estos dominios de cuentas Microsoft.
¿No está interesado en la versión 2.0 de la API? En el índice de la izquierda, vaya a la sección Referencia de la API de REST de Office 365 y seleccione la versión que desee.
Todas las operaciones de la API de calendario
Operaciones de eventos
Un evento representa una cita o reunión en el calendario del usuario. Un evento puede ser un patrón de serie (para eventos periódicos), una repetición, una instancia única o una excepción.
- Obtener eventos
- Sincronizar eventos
- API de búsqueda de horas para reuniones
- Crear eventos
- Actualizar eventos
- Responder a eventos
- Eliminar eventos
- Obtener datos adjuntos
- Crear adjuntos
- Eliminar archivos adjuntos
- Recibir recordatorios
- Posponer recordatorios
- Descartar recordatorios
Operaciones de calendario
Un calendario sirve como un contenedor de eventos. Un usuario puede tener varios calendarios. En Office 365, cada calendario se puede asignar a un grupo de calendarios.
Operaciones de grupos de calendarios
Los grupos de calendarios son una forma de organizar varios calendarios. Los usuarios pueden agregar varios calendarios a un solo grupo de calendarios en Outlook o Outlook Web App. Esto permite a los usuarios ver más fácilmente y de forma rápida todos los calendarios del grupo.
Nota
Outlook.com solo admite el grupo de calendarios predeterminado al que se puede acceder mediante el acceso directo ../me/calendars
. No se puede eliminar ese grupo de calendarios ni crear otro.
- Obtener grupos de calendarios
- Crear grupos de calendarios
- Actualizar grupos de calendarios
- Eliminar grupos de calendarios
Vea también
- Recurso de evento de la API de REST
- Recurso de calendario de la API de REST
- Recurso de calendario de la API de REST
Uso de la API de REST del calendario
Autenticación
Como cualquier otra API REST de Outlook, para cada solicitud a la API de calendario de Outlook, debería incluir un token de acceso válido. Obtener un token de acceso requiere que haya registrado e identificado su aplicación y obtenido la autorización correspondiente.
Puede obtener más información sobre algunas opciones de registro y autorización optimizadas para usted. Tenga esto en cuenta a medida que avance con las operaciones específicas en la API de calendario.
Ámbitos para acceder a calendarios compartidos
Los calendarios de Office 365 y Outlook.com admiten el uso compartido. Un usuario que ha creado un calendario lo puede compartir con otros usuarios. Se requieren los siguientes ámbitos para acceder a un calendario que se ha compartido con ese usuario:
- Para el acceso de lectura:
https://outlook.office.com/calendars.read.shared
- Acceso de lectura/escritura:
https://outlook.office.com/calendars.readwrite.shared
Versión de la API
La API REST de calendario es compatible con todas las versiones de la API REST de Outlook. La funcionalidad puede variar según la versión específica.
Usuario objetivo
Las solicitudes de la API de calendario siempre se realizan en nombre del usuario actual.
Consulte Utilizar la API REST de Outlook para obtener más información común a todos los subconjuntos de la API REST de Outlook.
Obtener eventos
Obtener una colección de eventos o un evento.
Un cuerpo de evento puede estar en texto o HTML.
Puede utilizar el encabezado Prefer: outlook.body-content-type
para especificar el formato que desea que se devuelva en la propiedad Body de una solicitud GET:
- Especifique
Prefer: outlook.body-content-type="text"
para obtener un cuerpo de evento que se devuelva en formato de texto. - Especifique
Prefer: outlook.body-content-type="html"
o simplemente omita el encabezado para que se devuelva el cuerpo del evento en formato HTML.
Si especifica cualquiera de los dos encabezados, la respuesta incluirá el encabezado Preference-Applied
correspondiente como confirmación:
- Para las solicitudes de formato de texto:
Preference-Applied: outlook.body-content-type="text"
- Para las solicitudes de formato HTML:
Preference-Applied: outlook.body-content-type="html"
Todas las operaciones que obtienen eventos de calendario pueden utilizar el encabezado HTTP Prefer: outlook.timezone para especificar la zona horaria para las horas de inicio y finalización en la respuesta. Por ejemplo, el siguiente encabezado Prefer: outlook.timezone establece las horas de inicio y finalización en la respuesta en la Hora estándar del Este.
Prefer: outlook.timezone="Eastern Standard Time"
Si no especifica el encabezado Prefer: outlook.timezone, las horas de inicio y finalización de la respuesta se devuelven en UTC. Consulte en esta lista los nombres de zona horaria admitidos.
Puede utilizar las propiedades OriginalStartTimeZone y OriginalEndTimeZone del recurso Event para averiguar la zona horaria utilizada al crear el evento.
- Obtener una vista de calendario
- Obtenga patrones de series y eventos individuales
- Obtener instancias de evento
- Obtener un evento
Obtener una vista de calendario
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obtiene las repeticiones, excepciones e instancias únicas de eventos en una vista de calendario definida por un intervalo de tiempo del calendario principal del usuario (../me/calendarview
) o de otro calendario.
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 obligatorio | Tipo | Descripción |
---|---|---|
Parámetros del encabezado | ||
Preferido: | outlook.timezone | La zona horaria predeterminada para eventos en la respuesta. |
Parámetros de dirección URL | ||
calendar_id | cadena | El Id. del calendario, si desea obtener una vista de calendario de un calendario específico. |
start_datetime | datetimeoffset | La fecha y la hora en que comienza el evento. |
end_datetime | datetimeoffset | La fecha y hora en que finaliza el evento. |
Utilice el encabezado Prefer: outlook.timezone para especificar la zona horaria que se utilizará para las horas de inicio y finalización del evento en la respuesta. Si el evento se ha creado en una zona horaria distinta, las horas de inicio y finalización se ajustarán a la zona horaria especificada.
Consulte en esta lista los nombres de zona horaria admitidos. Si no se especifica el encabezado Prefer: outlook.timezone, las horas de inicio y finalización se devuelven en UTC.
Nota
De forma predeterminada, cada evento en la respuesta incluye todas sus propiedades. Utilice $select
para especificar solo las propiedades que necesita para un mejor rendimiento. La propiedad Id se devuelve siempre. Consulte en Parámetros de consulta de OData los parámetros de filtrado, clasificación y paginación.
Por ejemplo, obtenga la vista de calendario para el mes de octubre, de manera que se devuelva solo la propiedad Subject para cada evento. Suponiendo que no se incluye el encabezado Prefer: outlook.timezone en la solicitud, la zona horaria 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 respuesta
Los eventos expandidos en el intervalo de tiempo especificado.
Obtenga patrones de series y eventos individuales
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obtenga una colección de patrones de series y eventos de instancia única del calendario principal del usuario (../me/events
) o de un calendario distinto. Para obtener instancias expandidas de eventos, puede obtener la vista de calendario o bien obtener las instancias de un 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 obligatorio | Tipo | Descripción |
---|---|---|
Parámetros del encabezado | ||
Preferido: | outlook.timezone | La zona horaria predeterminada para eventos en la respuesta. |
Parámetros de dirección URL | ||
calendar_id | cadena | La Id. de calendario, si recibe eventos de un calendario específico. |
Utilice el encabezado Prefer: outlook.timezone para especificar la zona horaria que se utilizará para las horas de inicio y finalización del evento en la respuesta. Si el evento se ha creado en una zona horaria distinta, las horas de inicio y finalización se ajustarán a la zona horaria especificada.
Consulte en esta lista los nombres de zona horaria admitidos. Si no se especifica el encabezado Prefer: outlook.timezone, las horas de inicio y finalización se devuelven en UTC.
Nota
Cada evento en la respuesta incluye todas sus propiedades. Utilice $select
para especificar solo las propiedades que necesita para un mejor rendimiento. La propiedad Id se devuelve siempre. Vea el ejemplo siguiente. Consulte en Parámetros de consulta de OData los parámetros de filtrado, clasificación y paginación.
El siguiente ejemplo muestra cómo utilizar $select
para especificar que se devuelvan solo las propiedades Subject, Organizer, Start y End de cada evento en la respuesta. Consulte la primera respuesta de ejemplo en Obtener un evento (REST) para obtener una lista completa de las propiedades que se devolverían para un evento si no se utiliza $select
.
Solicitud de muestra
GET https://outlook.office.com/api/v2.0/me/events?$select=Subject,Organizer,Start,End
Respuesta de muestra
{
"@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"
}
}
}
]
}
Obtener instancias de evento
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Puede obtener las instancias (repeticiones) de un evento para un intervalo de tiempo especificado. Si el evento es un tipo SeriesMaster, esto devuelve las repeticiones y excepciones del evento en el intervalo de tiempo especificado.
GET https://outlook.office.com/api/v2.0/me/events/{event_id}/instances?startDateTime={start_datetime}&endDateTime={end_datetime}
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros del encabezado | ||
Preferido: | outlook.timezone | La zona horaria predeterminada para eventos en la respuesta. |
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. |
start_datetime | datetimeoffset | La fecha y la hora UTC en que comienza el evento. |
end_datetime | datetimeoffset | La fecha y hora UTC en que finaliza el evento. |
Utilice el encabezado Prefer: outlook.timezone para especificar la zona horaria que se utilizará para las horas de inicio y finalización del evento en la respuesta. Si el evento se ha creado en una zona horaria distinta, las horas de inicio y finalización se ajustarán a la zona horaria especificada.
Consulte en esta lista los nombres de zona horaria admitidos. Si no se especifica el encabezado Prefer: outlook.timezone, las horas de inicio y finalización se devuelven en UTC.
Tipo de respuesta
La colección de eventos solicitada.
Nota
De forma predeterminada, cada evento en la respuesta incluye todas sus propiedades. Utilice $select
para especificar solo las propiedades que necesita para un mejor rendimiento. La propiedad Id se devuelve siempre. Consulte en Parámetros de consulta de OData los parámetros de filtrado, clasificación y paginación.
Por ejemplo, obtener las instancias de un evento determinado para el mes de octubre, incluir solo las propiedades Subject, Start y End de cada instancia:
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
Obtener un evento
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obtener un evento por Id.
GET https://outlook.office.com/api/v2.0/me/events/{event_id}
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros del encabezado | ||
Preferido: | outlook.timezone | La zona horaria predeterminada para eventos en la respuesta. |
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. |
Utilice el encabezado Prefer: outlook.timezone para especificar la zona horaria que se utilizará para las horas de inicio y finalización del evento en la respuesta. Si el evento se ha creado en una zona horaria distinta, las horas de inicio y finalización se ajustarán a la zona horaria especificada.
Consulte en esta lista los nombres de zona horaria admitidos. Si no se especifica el encabezado Prefer: outlook.timezone, las horas de inicio y finalización se devuelven en UTC.
Solicitud de muestra
GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2TG93AAA=
Respuesta de muestra
{
"@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 respuesta
El evento solicitado.
Nota
De forma predeterminada, la respuesta incluye todas las propiedades del evento. Utilice $select
para especificar solo las propiedades que necesita para un mejor rendimiento. La propiedad Id se devuelve siempre. Consulte en Parámetros de consulta de OData los parámetros de filtrado, clasificación y paginación.
El siguiente ejemplo muestra cómo utilizar $select
para especificar que se devuelvan solo las propiedades Subject, Organizer, Start y End de cada evento de la respuesta.
Solicitud de muestra
GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2TG93AAA=?$select=Subject,Organizer,Start,End
Respuesta de muestra
{
"@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
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Sincronice y obtenga eventos nuevos, actualizados o eliminados en un intervalo de tiempo específico del calendario principal del usuario (../me/calendarview
) o de un calendario distinto. Un conjunto de eventos de este tipo en un intervalo de tiempo también se conoce como una vista de calendario. Los eventos devueltos pueden incluir repeticiones y excepciones de una serie periódica e instancias únicas.
La sincronización de una vista de calendario generalmente requiere una ronda de dos o más solicitudes de sincronización, cada una de las cuales es una llamada GET. Para sincronizar una vista de calendario, utilice el método GET de la misma forma en que obtiene una vista de calendario, con la excepción de que debe incluir determinados encabezados de solicitud, y deltaToken o skipToken cuando corresponda.
Encabezados de solicitud
Debe especificar el encabezado "Prefer: odata.track-changes" en todas las solicitudes de sincronización, excepto aquellas que incluyen un
skipToken
que se devuelve de una solicitud de sincronización anterior. En la primera respuesta, busque el encabezado Preference-Applied: odata.track-changes para confirmar que el recurso admite la sincronización antes de continuar. (Más información sobre unskipToken
en los datos de la segunda respuesta de ejemplo a continuación.)Puede especificar el encabezado "Prefer: odata.maxpagesize = {x}" para indicar el número máximo de eventos que devuelve la solicitud de sincronización.
A continuación se muestra una ronda típica de eventos de sincronización en una vista de calendario:
Realice la solicitud GET inicial con el encabezado Prefer: odata.track-changes obligatorio. La respuesta inicial a una solicitud de sincronización siempre devuelve un deltaToken. (La segunda solicitud GET y las solicitudes posteriores difieren de la primera solicitud GET al incluir un deltaToken o un skipToken recibido en una respuesta anterior).
Si la primera respuesta devuelve el encabezado Preference-Applied: odata.track-changes, puede continuar con la sincronización.
Haga una segunda solicitud GET. Especifque el encabezado Preferar: odata.track-changes y el deltaToken devuelto con el primer GET para determinar si hay mas eventos. La segunda solicitud devolverá eventos adicionales, y un skipToken si hay más eventos disponibles, o un deltaToken si se ha sincronizado el último evento, en cuyo caso puede detenerlo.
Continúe la sincronización enviando una llamada GET e incluyendo un skipToken devuelto en la llamada anterior. Deténgase cuando obtenga una respuesta final que contenga un encabezado @odata.deltaLink con un deltaToken de nuevo, lo que indica que la sincronización se ha completado.
Eche un vistazo a la sintaxis de las llamadas iniciales y posteriores en una ronda de sincronización.
Para sincronizar el calendario predeterminado
Solicitud inicial:
GET https://outlook.office.com/api/v2.0/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
Segunda solicitud, o primera solicitud de una ronda posterior:
GET https://outlook.office.com/api/v2.0/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$deltatoken={delta_token}
Tercera solicitud o solicitud posterior de la misma ronda:
GET https://outlook.office.com/api/v2.0/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$skiptoken={skip_token}
Para sincronizar un calendario específico
Solicitud inicial:
GET https://outlook.office.com/api/v2.0/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
Segunda solicitud, o primera solicitud de una ronda posterior:
GET https://outlook.office.com/api/v2.0/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$deltatoken={delta_token}
Tercera solicitud o solicitud posterior de la misma ronda:
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 | Descripción |
---|---|---|
Parámetros de dirección URL | ||
user_context | cadena | El contexto del usuario. Puede utilizar el valor de 'me' para indicar el contexto del usuario actual. También puede utilizar el formato users / {upn} donde upn es el nombre principal del usuario que generalmente es la dirección de correo electrónico del usuario. |
calendar_id | cadena | El Id. del calendario, si desea obtener una vista de calendario de un calendario específico. |
start_datetime | datetimeoffset | La fecha y la hora en que comienza el evento. |
end_datetime | datetimeoffset | La fecha y hora en que finaliza el evento. |
delta_token | cadena | La cadena deltaToken devuelta como parte del valor de @odata.deltaLink en la respuesta de sincronización anterior. |
skip_token | cadena | La cadena skipToken devuelta como parte del valor de @data.nextLink en la respuesta de sincronización anterior. |
Nota
- Al especificar "Prefer:odata.track-changes" en la solicitud inicial, si la respuesta admite la sincronización, la respuesta incluiría el encabezado "Preference-applied: odata.track-changes".
- Si intenta sincronizar un recurso que no es compatible, o si esta no es la solicitud de sincronización inicial, no verá el encabezado "Preference-applied" en la respuesta.
- Puede modificar la ventana de tiempo de cambio cambiando los parámetros de consulta startdatetime y enddatetime.
- Cada evento en la respuesta incluye todas sus propiedades.
- Para una serie periódica, una respuesta de sincronización incluye todo el evento para eventos de excepción y de patrón periódicos.
- Las instancias de una serie periódica se abrevian y contienen solo las propiedades Start y End. Puede capturar el resto de la información del evento de repetición del evento de patrón periódico. Consulte en Recurso de evento la información de referencia.
- No se pueden usar los parámetros de consulta
$filter
,$count
,$select
,$skip
,$top
ni$search
.
Tipo de respuesta
Los eventos expandidos y los eventos abreviados en el intervalo de tiempo especificado.
Ejemplo
El ejemplo siguiente muestra la solicitud de sincronización inicial y la segunda solicitud de sincronización para sincronizar el calendario predeterminado del usuario. Cada solicitud especifica devolver solo un evento completo cada vez:
- La respuesta inicial devuelve un evento, un
deltaLink
ydeltaToken
. - La segunda solicitud utiliza ese
deltatoken
. La segunda respuesta devuelve un evento, unnextLink
yskipToken
.
Para completar la sincronización, utilice el skipToken
devuelto con la solicitud de sincronización anterior hasta que la respuesta de sincronización devuelva un deltaLink
y deltaToken
, en cuyo caso esta ronda de sincronización se ha completado. Guarde el deltaToken
para la próxima ronda de sincronización.
Para obtener más información, consulte Sincronizar eventos en una vista de calendario de Outlook.
Solicitud inicial de ejemplo
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
Muestra de datos de respuesta 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"
}
Segunda solicitud de muestra
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
Muestra de datos de segunda respuesta
{
"@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"
}
API de búsqueda de horas para reuniones
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read.shared
- wl.calendars
- wl.contacts_calendars
Busque sugerencias de hora de la reunión en función de la disponibilidad del organizador y los asistentes, y restricciones de hora o de ubicación especificadas como parámetros.
Esta operación se aplica solo a los buzones de Office 365 (en Azure AD) y no a las cuentas de Microsoft.
POST https://outlook.office.com/api/{version}/me/findmeetingtimes
Todos los parámetros compatibles se enumeran a continuación. Dependiendo de su escenario, especifique los parámetros necesarios en el cuerpo de la solicitud de la acción FindMeetingTimes.
Parámetro | Tipo | Descripción | Obligatorio |
---|---|---|---|
Asistentes | Colección(AttendeeBase) | Asistentes o recursos para la reunión. Una colección vacía hace que FindMeetingTimes busque franjas horarias libres solo para el organizador. | Opcional |
IsOrganizerOptional | Edm.Boolean | Especifique true si el organizador no tiene necesariamente que asistir. El valor predeterminado es false . |
Opcional |
LocationConstraint | LocationConstraint | Los requisitos del organizador sobre la ubicación de la reunión, por ejemplo si se requiere una sugerencia para una ubicación de la reunión o si hay ubicaciones específicas en las que únicamente pueda tener lugar la reunión. | Opcional |
MaxCandidates | Edm.Int32 | El número máximo de sugerencias de reuniones que se devolverá en la respuesta. | Opcional |
MeetingDuration | Edm.Duration | La duración de la reunión expresada en formato ISO 8601 para duraciones, por ejemplo, PT1H representa 1 hora. Si no se especifica la duración de la reunión, FindMeetingTimes utiliza el valor predeterminado de 30 minutos. |
Opcional |
MinimumAttendeePercentage | Edm.Double | La confianza mínima necesaria para que se devuelva un intervalo de tiempo en la respuesta. Es un valor de porcentaje (%) comprendido entre 0 y 100. | Opcional |
ReturnSuggestionReasons | Edm.Boolean | Especifque true para que se devuelva un motivo para cada sugerencia de reunión en la propiedad SuggestionReason. El valor predeterminado es false para que no se devuelva esa propiedad. |
Opcional |
TimeConstraint | TimeConstraint | Cualquier restricción de tiempo para una reunión, que puede incluir la naturaleza de la reunión (ActivityDomain) y posibles períodos de reunión (TimeSlots). FindMeetingTimes supone ActivityDomain como Work si no especifica este parámetro |
Opcional |
FindMeetingTimes comprueba el estado de disponibilidad en los calendarios principales del organizador y los asistentes. En función de los parámetros especificados, la acción sugiere las mejores horas de reunión posibles. En la tabla siguiente se describen las restricciones que puede especificar en el parámetro TimeConstraint.
Valor ActivityDomain en TimeConstraint | Sugerencias de hora de reunión |
---|---|
Trabajo | Las sugerencias se encuentran dentro de las horas laborales del usuario, que se definen en la configuración del calendario del usuario y que puede personalizar el usuario o administrador. El horario de trabajo predeterminado es de lunes a viernes de 8 a.m. a 5 p.m. en la configuración de zona horaria para el buzón. Este es el valor predeterminado si no se especifica ActivityDomain. |
Personal | Las sugerencias están dentro del horario laboral del usuario, y los sábados y domingos. El valor predeterminado es de lunes a domingo, de 8 a. m. a 5 p. m., en la zona horaria establecida para el buzón. |
Sin restricciones | Las sugerencias pueden pertenecer a cualquier hora del día, todos los días de la semana. |
Desconocido | No utilice este valor, ya que estará obsoleto en el futuro. Actualmente su comportamiento es igual al de Trabajo. Cambie cualquier código existente para utilizar Trabajo, Personal o Sin restricciones, según corresponda. |
Tipo de respuesta
Un MeetingTimeSuggestionsResult que incluye una colección de sugerencias para reuniones, cada una de tipo MeetingTimeSuggestion, y una propiedad EmptySuggestionsReason.
Cada sugerencia se define como un MeetingTimeSuggestion, con asistentes que tienen de forma predeterminada un nivel de confianza del 50 % de asistencia, o un % específico que ha especificado en el parámetro MinimumAttendeePercentage.
De forma predeterminada, cada sugerencia de hora de la reunión se devuelve en formato UTC. Aplique el encabezado de solicitud Prefer: outlook.timezone
para que se reajusten las sugerencias de horas para reuniones en una zona horaria distinta, por ejemplo:
Prefer: outlook.timezone="Pacific Standard Time"
Si FindMeetingTimes no puede devolver ninguna sugerencia de reunión, la respuesta indicaría un motivo en la propiedad EmptySuggestionsReason. En función de este valor, puede ajustar mejor los parámetros y llamar de nuevo a FindMeetingTimes.
Nota
Actualmente, FindMeetingTimes supone que cualquier Asistente que es una persona (a diferencia de un recurso) es un asistente necesario. Por lo tanto, especifique Required
para una persona y Resource
para un recurso en la propiedad Type correspondiente, como parte del parámetro de colección Attendees.
A continuación, cada ejemplo llama a FindMeetingTimesy varía según las restricciones de disponibilidad (de hora y de ubicación) de los asistentes:
- Buscar horario y ubicación de reunión con los asistentes
- Buscar horario de reunión en una ubicación conocida y recibir un motivo para cada sugerencia
- Buscar horario de reunión pero no hay asistentes disponibles
- Buscar horario de reunión pero solo algunos asistentes están disponibles
- Buscar franjas horarias libres solo para el usuario que ha iniciado sesión
Buscar horario y ubicación de reunión con asistentes específicos
Buscar horarios y ubicaciones de reunión especificando los siguientes parámetros en el cuerpo de la solicitud:
- Asistentes
- TimeConstraint
- MeetingDuration
Solicitud de muestra
El siguiente ejemplo sugiere horarios y ubicaciones de reunión teniendo en cuenta la disponibilidad del organizador y del asistente durante las horas laborales del intervalo de tiempo de reunión solicitado, y el período de tiempo 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"
}
Respuesta de muestra
Código de estado: 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": ""
}
Buscar horario de reunión en una ubicación conocida y recibir un motivo para cada sugerencia
Encontrar un horario de reunión en una ubicación predeterminada y solicitar un motivo para cada sugerencia, especificando los siguientes parámetros en el cuerpo de la solicitud:
- Asistentes
- LocationConstraint
- TimeConstraint
- MeetingDuration
- ReturnSuggestionReasons
Al establecer el parámetro ReturnSuggestionReasons, también recibe una explicación en la propiedad SuggestionReason de cada sugerencia, si FindMeetingTimes devuelve alguna sugerencia.
Solicitud de muestra
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"
}
Respuesta de muestra
Código de estado: 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": ""
}
Buscar horario de reunión pero no hay asistentes disponibles
Encontrar un horario de reunión en una ubicación predeterminada, especificando los siguientes parámetros en el cuerpo de la solicitud:
- Asistentes
- LocationConstraint
- TimeConstraint
- MeetingDuration
En este ejemplo, según los parámetros especificados y la disponibilidad de asistentes, FindMeetingTimes no puede devolver ninguna sugerencia, y en su lugar devuelve un motivo AttendeesUnavailable
en la propiedad EmptySuggestionsReason.
Consulte otros posibles motivos por los que no se devuelven sugerencias de reunión.
Solicitud de muestra
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"
}
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
"MeetingTimeSuggestions": [
],
"EmptySuggestionsReason": "AttendeesUnavailable"
}
Buscar horario de reunión pero solo algunos asistentes están disponibles
Encontrar un horario de reunión en una ubicación predeterminada, especificando los siguientes parámetros en el cuerpo de la solicitud:
- Asistentes
- LocationConstraint
- TimeConstraint
- MeetingDuration
- ReturnSuggestionReasons
- MinimumAttendeePercentage
En este ejemplo, solo uno de los dos asistentes está disponible. Cada sugerencia de reunión que devuelve FindMeetingTimes incluye:
- La disponibilidad de cada asistente
- Una Confianza de reunión calculada que es el % de posibilidades de que asistan de los asistentes. Este valor debe cumplir con el requisito del 60% especificado en MinimumAttendeePercentage.
- UnSuggestionHint, ya que se ha establecido el parámetro ReturnSuggestionReasons.
Buscar más información sobre la confianza de una reunión.
Solicitud de muestra
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"
}
Respuesta de muestra
Código de estado: 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":""
}
Buscar franjas horarias libres solo para el usuario que ha iniciado sesión
Buscar franjas horarias libres en el calendario principal del usuario que ha iniciado sesión en cualquier momento de la semana dentro de un intervalo de fechas, especificando los siguientes parámetros en el cuerpo de la solicitud:
- TimeConstraint
- MeetingDuration
Solicitud de muestra
Este ejemplo busca franjas horarias libres de una hora, según lo especificado en MeetingDuration, en el calendario principal del usuario que ha iniciado sesión en cualquier momento de la semana dentro de un intervalo de fechas 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"
}
Respuesta de muestra
Código de estado: 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": ""
}
Obtener salas de reuniones (versión preliminar)
Esta característica está actualmente disponible en beta. Acceda a la sección Referencia de la API de REST de Office 365 en el índice de la izquierda y seleccione beta para obtener más información.
Crear eventos
Crear un evento de calendario
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Cree un evento en el calendario principal del usuario o en un calendario específico publicando en el extremo events
del calendario. Cuando se crea el evento, el servidor envía invitaciones a todos los asistentes.
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 obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
calendar_id | cadena | Id. de calendario |
Solicitud de muestra
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"
}
]
}
Respuesta de muestra
Código de estado: 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 respuesta
El nuevo evento.
De forma predeterminada, la respuesta incluye todas las propiedades del nuevo evento. Utilice $select
para especificar solo las propiedades que necesita para un mejor rendimiento. La propiedad Id se devuelve siempre.
El siguiente es un ejemplo para incluir solo las propiedades Start y End del nuevo evento en la respuesta.
POST https://outlook.office.com/api/v2.0/me/events?$Select=Start,End
Actualizar eventos
Actualizar un evento de calendario
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Cambiar un evento Solo se modifican las propiedades que especifique. Si el usuario es el organizador, el servidor envía las actualizaciones de la reunión a todos los asistentes.
PATCH https://outlook.office.com/api/v2.0/me/events/{event_id}
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. |
Especifique cualquier propiedad event grabable en el cuerpo de la solicitud.
Solicitud de muestra
PATCH https://outlook.office.com/api/v2.0/me/events/AAMkAGE0M4v1OAAA=
Content-Type: application/json
{
"Location": {
"DisplayName": "Your office",
"Address": null
}
}
Respuesta de muestra
Código de estado: 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 respuesta
El evento actualizado. Si el usuario es el organizador, el servidor envía las actualizaciones de la reunión a todos los asistentes.
De forma predeterminada, la respuesta incluye todas las propiedades del evento actualizado. Utilice $select
para especificar solo las propiedades que necesita para un mejor rendimiento. La propiedad Id se devuelve siempre.
PATCH https://outlook.office.com/api/v2.0/me/events/AAMkAGE1MFKPQWAAA=?$select=Location
Responder a eventos
Aceptar evento
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Acepta el evento especificado.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/accept
Parámetro | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. Necesario. |
Parámetros de cuerpo | ||
Comentario | cadena | Texto incluido en la respuesta. Opcional. |
SendResponse | booleano | true si se va a enviar una respuesta al organizador; de lo contrario, false . Opcional. El valor predeterminado es true . |
Solicitud de muestra
POST https://outlook.office.com/api/v2.0/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/accept
Content-Type: application/json
{
"Comment": "Great idea!",
"SendResponse": "true"
}
Respuesta
Una respuesta correcta se indica mediante un código de respuesta HTTP 202 Accepted.
Aceptar provisionalmente evento
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Acepta provisionalmente el evento especificado.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/tentativelyaccept
Parámetro | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. Necesario. |
Parámetros de cuerpo | ||
Comentario | cadena | Texto incluido en la respuesta. Opcional. |
SendResponse | booleano | true si se va a enviar una respuesta al organizador; de lo contrario, false . Opcional. El valor predeterminado es true . |
Solicitud de muestra
POST https://outlook.office.com/api/v2.0/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/tentativelyaccept
Content-Type: application/json
{
"Comment": "I'll confirm later!",
"SendResponse": "true"
}
Respuesta
Una respuesta correcta se indica mediante un código de respuesta HTTP 202 Accepted.
Rechazar evento
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Rechaza la invitación al evento especificado.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/decline
Parámetro | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. Necesario. |
Parámetros de cuerpo | ||
Comentario | cadena | Texto incluido en la respuesta. Opcional. |
SendResponse | booleano | true si se va a enviar una respuesta al organizador; de lo contrario, false . Opcional. El valor predeterminado es true . |
Solicitud de muestra
POST https://outlook.office.com/api/v2.0/me/events('AAMkAGE1M2IyNGNmLTI5MT_bs88AAAXDJwEAAA=')/decline
Content-Type: application/json
{
"Comment": "Sorry, maybe next time!",
"SendResponse": "true"
}
Respuesta
Una respuesta correcta se indica mediante un código de respuesta HTTP 202 Accepted.
Reenviar eventos (versión preliminar)
Esta característica está actualmente disponible solo en la versión beta. Acceda a la sección Referencia de la API de REST de Office 365 en el índice de la izquierda y seleccione beta para obtener más información.
Eliminar eventos
Eliminar un evento del calendario
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Mover un evento a la carpeta Elementos eliminados del usuario que ha iniciado sesión. Si el evento es una reunión y el usuario que ha iniciado sesión es el organizador, el servidor envía cancelaciones a todos los asistentes.
DELETE https://outlook.office.com/api/v2.0/me/events/{event_id}
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. |
Solicitud de muestra
DELETE https://outlook.office.com/api/v2.0/me/events/AAMkAGE0M4v1OAAA=
Respuesta de muestra
Status code: 204
Cancelar eventos (versión preliminar)
Esta característica está actualmente disponible solo en la versión beta. Acceda a la sección Referencia de la API de REST de Office 365 en el índice de la izquierda y seleccione beta para obtener más información.
Obtener datos adjuntos
Puede obtener una colección de datos adjuntos o recibir datos adjuntos.
Recibir una recopilación de datos adjuntos
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Reciba los datos adjuntos de un evento determinado.
Nota
Consulte en Parámetros de consulta de OData los parámetros de filtrado, clasificación y paginación.
GET https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. |
Tipo de respuesta
Una recopilación de datos adjuntos que puede ser del tipo FileAttachment o ItemAttachment.
Solicitud de muestra
GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2NGTG9yAAA=/attachments
Respuesta de muestra
Código de estado: 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=="
}
]
}
Recibir datos adjuntos
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Recibir datos adjuntos de un evento determinado.
GET https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments/{attachment_id}
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. |
attachment_id | cadena | El identificador de los datos adjuntos. |
Nota
Consulte en Parámetros de consulta de OData los parámetros de filtrado, clasificación y paginación.
Tipo de respuesta
El archivo adjunto o elemento adjunto solicitado.
Solicitud de muestra
GET https://outlook.office.com/api/v2.0/me/events/AAMkAGI2WRAAADTG9yAAA=/attachments/AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=
Respuesta de muestra
Código de estado: 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=="
}
Ejemplo de solicitud ($expand en datos adjuntos)
El siguiente ejemplo recibe y expande las 2 referencias adjuntas insertadas con las propiedades del evento.
GET https://outlook.office.com/api/v2.0/me/events('AAMkAGE1Mbs88AADggYEcAAA=')?$expand=attachments
Respuesta de muestra
Código de estado: 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
}
]
}
Ejemplo de solicitud ($expand en elementos adjuntos anidados)
El siguiente ejemplo recibe un elemento adjunto anidado.
GET https://outlook-sdf.office.com/api/v2.0/me/events/AAMkAGE1Mbs88AADUv0uFAAA=/attachments/AAMkAGE1Mbs88AADUv0uFAAABEgAQAL53d0u3BKBJmCxKVxZKBZ8=$expand=Microsoft.OutlookServices.ItemAttachment/Item
Respuesta de muestra
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",
}
}
Crear adjuntos
Puede crear un archivo adjunto o crear un archivo adjunto para un evento.
Crear un archivo adjunto
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Agregue un archivo adjunto a un evento.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. |
Parámetros de cuerpo | ||
@odata.type | cadena | #Microsoft.OutlookServices.FileAttachment |
Nombre | cadena | El nombre de los datos adjuntos. |
ContentBytes | binario | El archivo para adjuntar. |
Tipo de respuesta
El nuevo archivo adjunto.
Crear un elemento adjunto
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Agregue un elemento adjunto a un evento.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. |
Parámetros de cuerpo | ||
@odata.type | cadena | # Microsoft.OutlookServices.ItemAttachment |
Nombre | cadena | El nombre de los datos adjuntos. |
Elemento | Una entidad Mensaje, Evento o Contacto. | El elemento para adjuntar. |
Tipo de respuesta
El nuevo elemento adjunto.
Crear una referencia adjunta
Ámbito mínimo necesario
https://outlook.office.com/calendars.readwrite
Agregue una referencia adjunta a un evento.
POST https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | Cadena | Id. de evento. |
Parámetros de cuerpo | ||
@odata.type | Cadena | #Microsoft.OutlookServices.ReferenceAttachment |
Nombre | Cadena | Nombre para mostrar de los datos adjuntos. Necesario. |
SourceUrl | Cadena | URL para obtener el contenido del archivo adjunto. Si se trata de una URL a una carpeta, para que la carpeta se muestre correctamente en Outlook o Outlook en la web, configure IsFolder en true. Necesario. |
Especifique los parámetros Name y SourceUrl y cualquier parámetro reference attachment grabable en el cuerpo de la solicitud.
Tipo de respuesta
Solicitud de muestra
El siguiente ejemplo agrega una referencia adjunta a un evento existente. El archivo adjunto es un vínculo a un archivo en OneDrive para la Empresa.
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"
}
Respuesta de muestra
Código de estado: 201 - Creado
{
"@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
}
Eliminar archivos adjuntos
Eliminar un archivo adjunto de evento
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Elimine el archivo adjunto especificado de un evento. El archivo adjunto puede ser un archivo adjunto o elemento adjunto.
DELETE https://outlook.office.com/api/v2.0/me/events/{event_id}/attachments/{attachment_id}
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. |
attachment_id | cadena | El identificador de los datos adjuntos. |
Solicitud de muestra
DELETE https:/outlook.office.com/api/v2.0/me/events/AAMkAGE0MG4v1OAAA=/attachments/AAMkAGITG9yAAA=
Respuesta de muestra
Status code: 204
Recibir recordatorios
Reciba una lista de recordatorios de eventos entre dos fechas y horas de un calendario.
Ámbito mínimo necesario
Uno de los siguientes:
- 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 obligatorio | Tipo | Descripción |
---|---|---|
Parámetros del encabezado | ||
Preferido: | outlook.timezone | La zona horaria predeterminada para los eventos en la respuesta. |
Parámetros de dirección URL | ||
StartDateTime | cadena | La fecha y hora de inicio de los recordatorios devueltos. |
EndDateTime | cadena | La fecha y hora de finalización de los recordatorios devueltos. |
Utilice el encabezado Prefer: outlook.timezone para especificar la zona horaria que se utilizará para las horas de inicio y finalización del evento en la respuesta. Si el evento se ha creado en una zona horaria distinta, las horas de inicio y finalización se ajustarán a la zona horaria especificada.
Consulte en esta lista los nombres de zona horaria admitidos. Si no se especifica el encabezado Prefer: outlook.timezone, la zona horaria se establece en UTC.
Posponer recordatorios
Posponga un recordatorio para posponer el recordatorio hasta un nuevo horario.
Ámbito mínimo necesario
Uno de los siguientes:
- 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 necesarios | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
id. | cadena | El identificador del evento. |
Parámetros de cuerpo | ||
NewReminderTime | DateTimeTimeZone | Nueva fecha y hora para desencadenar el aviso. |
Descartar recordatorios
Descarta un recordatorio que se ha desencadenado.
Ámbito mínimo necesario
Uno de los siguientes:
- 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 necesarios | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
id. | cadena | El identificador del evento. |
Obtener calendarios
Puede obtener una colección de calendarios u obtener un calendario.
Obtener una colección de calendarios
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obtenga todos los calendarios del usuario (calendars
) u obtenga los calendarios de un grupo de calendarios 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
Nota
Consulte en Parámetros de consulta de OData los parámetros de filtrado, clasificación y paginación.
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
calender_group_id | cadena | Id. del grupo de calendarios. |
Solicitud de muestra
https://outlook.office.com/api/v2.0/me/calendars
Respuesta de muestra
Código de estado: 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"
}
}
]
}
Obtener un calendario
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obtenga un calendario por ID. Puede obtener el calendario principal del usuario usando el extremo ../me/calendar
.
GET https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}
Nota
Consulte en Parámetros de consulta de OData los parámetros de filtrado, clasificación y paginación.
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
calendar_id | cadena | Id. de calendario |
Solicitud de muestra
GET https://outlook.office.com/api/v2.0/me/calendars/AAMkAGI2TGuLAAA=
Respuesta de muestra
Código de estado: 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 respuesta
El calendario solicitado.
Crear calendarios
Crear un calendario
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Cree un calendario en el grupo de calendarios predeterminado usando el acceso directo ../me/calendars
, o en un grupo de calendarios determinado publicando en el extremo calendars
del 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 obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
calender_group_id | cadena | El Id. del grupo de calendarios, si obtiene calendarios de un grupo específico. |
Parámetros de cuerpo | ||
Nombre | cadena | Nombre del nuevo calendario. |
Solicitud de muestra
POST https://outlook.office.com/api/v2.0/me/calendars
Content-Type: application/json
{
"Name": "Social"
}
Respuesta de muestra
Código de estado: 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 respuesta
El nuevo calendario.
Actualizar calendarios
Actualizar un calendario
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Cambie las propiedades grabables de un calendario.
PATCH https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
calendar_id | cadena | Id. de calendario |
Solicitud de muestra
PATCH https://outlook.office.com/api/v2.0/me/calendars/AAMkAGE4xLIAAA=
Content-Type: application/json
{
"Name": "Social events"
}
Respuesta de muestra
Código de estado: 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 respuesta
El calendario actualizado.
Eliminar calendarios
Eliminar un calendario
Ámbito mínimo necesario
Uno de los siguientes:
- 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 obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
calendar_id | cadena | Id. de calendario |
Solicitud de muestra
DELETE https://outlook.office.com/api/v2.0/me/calendars/AAMkAGE4xLIAAA=
Respuesta de muestra
Status code: 204
Obtener grupos de calendarios
Puede obtener una colección de grupo de calendarios u obtener un grupo de calendarios.
Nota
Outlook.com solo admite el grupo de calendarios predeterminado al que se puede acceder mediante el acceso directo ../me/calendars
.
Obtener una colección de grupos de calendarios
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obtenga los grupos de calendarios en un buzón.
GET https://outlook.office.com/api/v2.0/me/calendargroups
Nota
Consulte en Parámetros de consulta de OData los parámetros de filtrado, clasificación y paginación.
Solicitud de muestra
GET https://outlook.office.com/api/v2.0/me/calendargroups
Respuesta de muestra
Código de estado: 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 respuesta
La colección de grupos de calendarios solicitada.
Obtener un grupo de calendarios
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Obtenga un grupo de calendarios por ID.
GET https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}
Nota
Consulte en Parámetros de consulta de OData los parámetros de filtrado, clasificación y paginación.
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
calendar_group_id | cadena | Id. del grupo de calendarios. |
Solicitud de muestra
GET https://outlook.office.com/api/v2.0/me/calendargroups/AAMkAGI2TGuKAAA=
Respuesta de muestra
Código de estado: 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 respuesta
El grupo de calendarios solicitado.
Crear grupos de calendarios
Crear un grupo de calendarios. Name es la única propiedad grabable para un grupo de calendarios.
Nota
Outlook.com solo admite el grupo de calendarios predeterminado al que se puede acceder mediante el acceso directo ../me/calendars
. No puede crear otro grupo de calendarios en Outlook.com.
Crear un grupo de calendarios
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
POST https://outlook.office.com/api/v2.0/me/calendargroups
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetro URL | ||
Parámetros de cuerpo | ||
Nombre | cadena | El nombre del grupo de calendarios. |
Solicitud de muestra
POST https://outlook.office.com/api/v2.0/me/calendargroups
Content-Type: application/json
{
"Name": "Birthdays"
}
Respuesta de muestra
Código de estado: 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 respuesta
El nuevo grupo de calendarios.
Actualizar grupos de calendarios
Actualizar un grupo de calendarios
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Cambie el nombre de un grupo de calendarios. Name es la única propiedad grabable de grupo de calendarios.
PATCH https://outlook.office.com/api/v2.0/me/calendargroups/{calendar_group_id}
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
calendar_group_id | cadena | Id. del grupo de calendarios. |
Parámetros de cuerpo | ||
Nombre | cadena | El nombre del grupo de calendarios actualizado. |
Solicitud de muestra
PATCH https://outlook.office.com/api/v2.0/me/calendargroups/AAMkAGE0M4xLGAAA=
Content-Type: application/json
{
"Name": "Holidays"
}
Respuesta de muestra
{
"@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 respuesta
El grupo de calendarios actualizado.
Eliminar grupos de calendarios
Nota
Outlook.com solo admite el grupo de calendarios predeterminado al que se puede acceder mediante el acceso directo ../me/calendars
. No elimine este grupo de calendarios.
Eliminar un grupo de calendarios
Ámbito mínimo necesario
Uno de los siguientes:
- 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 obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
calendar_group_id | cadena | Id. del grupo de calendarios. |
Solicitud de muestra
DELETE https://outlook.office.com/api/v2.0/me/calendargroups/AAMkAGE0MGM4xLGAAA=
Respuesta de muestra
Status code: 204
Pasos siguientes
Tanto si está listo para empezar a compilar una aplicación como si simplemente desea obtener más información, tenemos todo lo que necesita.
- Comience con las API REST de correo, calendario y contactos.
- ¿Desea ver ejemplos? Los tenemos.
O bien, obtenga más información sobre el uso de la plataforma de Office 365:
- API REST de Outlook en el Centro de desarrollo de Outlook
- Información general del desarrollo en la plataforma de Office 365
- Autenticación de aplicaciones y autorización de recursos de Office 365
- Registrar manualmente la aplicación con Azure AD para que pueda acceder a las API de Office 365
- Referencia de la API de correo
- Referencia de la API de contactos
- API de REST de tareas (versión preliminar)
- API de OneDrive
- Referencia de operaciones de la API REST del Servicio de detección
- Referencia de recursos para las API REST de correo, calendario, contactos y tareas