Referencia de la API de REST de calendario de Outlook (beta)
Se aplica a: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com
Nota
Esta documentación trata sobre la API para salas de reuniones, ubicaciones de eventos múltiples, uso compartido de calendario y reenvío y cancelación de eventos que se encuentran en versión preliminar. Las características en versión preliminar pueden cambiar antes de su finalización, y pueden dañar código que las utilice. Por ello, en general, debería utilizar solo una versión de producción de una API en su código de producción. Si está disponible, v2.0 es actualmente la versión preferida.
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 beta 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 deseada.
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
- Obtener salas de reuniones (versión preliminar)
- Crear eventos
- Actualizar eventos
- Responder a eventos
- Reenviar eventos (versión preliminar)
- Eliminar eventos
- Cancelar eventos (versión preliminar)
- 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 se especifica el encabezado Prefer: outlook.timezone, las horas de inicio y finalización de la respuesta se devuelven en UTC.
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
- Obtener 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/beta/me/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
GET https://outlook.office.com/api/beta/me/calendars/{calendar_id}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros del encabezado | ||
Prefer: | 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/beta/me/calendarview?startDateTime=2014-10-01T01:00:00Z&endDateTime=2014-10-31T23:00:00Z&$select=Subject
Tipo de respuesta
Los eventos expandidos en el intervalo de tiempo especificado.
Obtener 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/beta/me/events
GET https://outlook.office.com/api/beta/me/calendars/{calendar_id}/events
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
_Parámetros de encabezado | ||
Prefer: | 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/beta/me/events?$select=Subject,Organizer,Start,End,Location,Locations
Respuesta de muestra
Código de estado: 200
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Events(Subject,Organizer,Start,End,Location,Locations)",
"value":[
{
"@odata.id":"https://outlook.office.com/api/beta/Users('94447c6e-ea4c-494c-a9ed-d905e366c5cb@007e925e-fb5a-4f60-9cb6-58a21e692480')/Events('AAMkADNWAACYBXsvAAA=')",
"@odata.etag":"W/\"SuFHwDRP1EeXJUopWbSLlgAAmBvk2g==\"",
"Id":"AAMkADNWAACYBXsvAAA=",
"Subject":"Plan summer company picnic",
"Start":{
"DateTime":"2017-06-09T18:00:00.0000000",
"TimeZone":"UTC"
},
"End":{
"DateTime":"2017-06-09T19:00:00.0000000",
"TimeZone":"UTC"
},
"Location":{
"DisplayName":"Conf Room 3; Fourth Coffee; Home Office",
"LocationType":"Default"
},
"Locations":[
{
"DisplayName":"Conf Room 3",
"LocationType":"Default"
},
{
"DisplayName":"Fourth Coffee",
"LocationType":"Default",
"Address":{
"Type":"Unknown",
"Street":"4567 Main St",
"City":"Redmond",
"State":"WA",
"CountryOrRegion":"US",
"PostalCode":"32008"
},
"Coordinates":{
"Latitude":47.672,
"Longitude":-102.103
}
},
{
"DisplayName":"Home Office",
"LocationType":"Default"
}
],
"Organizer":{
"EmailAddress":{
"Name":"Alex Wilbur",
"Address":"AlexW@contoso.onmicrosoft.com"
}
}
},
{
"@odata.id":"https://outlook.office.com/api/beta/Users('94447c6e-ea4c-494c-a9ed-d905e366c5cb@007e925e-fb5a-4f60-9cb6-58a21e692480')/Events('AAMkADNPkvzAAA=')",
"@odata.etag":"W/\"SuFHwDRP1EeXJUopWbSLlgAAdE6yjA==\"",
"Id":"AAMkADNPkvzAAA=",
"Subject":"Customer visit",
"Start":{
"DateTime":"2017-04-20T21:00:00.0000000",
"TimeZone":"UTC"
},
"End":{
"DateTime":"2017-04-20T23:00:00.0000000",
"TimeZone":"UTC"
},
"Location":{
"DisplayName":"",
"LocationType":"Default",
"Address":{
"Type":"Unknown"
},
"Coordinates":{
}
},
"Locations":[
],
"Organizer":{
"EmailAddress":{
"Name":"Alex Wilbur",
"Address":"AlexW@contoso.onmicrosoft.com"
}
}
}
]
}
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/beta/me/events/{event_id}/instances?startDateTime={start_datetime}&endDateTime={end_datetime}
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros del encabezado | ||
Prefer: | outlook.timezone | La zona horaria predeterminada para los 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/beta/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/beta/me/events/{event_id}
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros del encabezado | ||
Prefer: | outlook.timezone | La zona horaria predeterminada para los 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/beta/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",
},
"Locations":[
{
"DisplayName": "Alex's Office",
}
]
"ShowAs": "Busy",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"Type": "SeriesMaster",
"SeriesMasterId": null,
"Attendees": [
{
"EmailAddress": {
"Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
"Name": "Janet Schorr"
},
"Status": {
"Response": "None",
"Time": "0001-01-01T00:00:00Z"
},
"Type": "Required"
},
{
"EmailAddress": {
"Address": "pavelb@a830edad9050849NDA1.onmicrosoft.com",
"Name": "Pavel Bansky"
},
"Status": {
"Response": "None",
"Time": "0001-01-01T00:00:00Z"
},
"Type": "Required"
}
],
"Recurrence": {
"Pattern": {
"Type": "Weekly",
"Interval": 1,
"Month": 0,
"Index": "First",
"FirstDayOfWeek": "Sunday",
"DayOfMonth": 0,
"DaysOfWeek": [
"Monday"
]
},
"RecurrenceTimeZone": "Pacific Standard Time",
"Range": {
"Type": "NoEnd",
"StartDate": "2014-10-13",
"EndDate": "2014-11-13",
"NumberOfOccurrences": 0
}
},
"OriginalEndTimeZone": "Pacific Standard Time",
"OriginalStartTimeZone": "Pacific Standard Time",
"Organizer": {
"EmailAddress": {
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
"Name": "Alex D"
}
},
"OnlineMeetingUrl": null
}
Tipo de 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/beta/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/beta/{user_context}/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}
Segunda solicitud, o primera solicitud de una ronda posterior:
GET https://outlook.office.com/api/beta/{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/beta/{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/beta/{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/beta/{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/beta/{user_context}/calendars('{calendar_id}')/calendarview?startDateTime={start_datetime}&endDateTime={end_datetime}&$skiptoken={skip_token}
Parámetros
Parámetro | Tipo | Descripción |
---|---|---|
Parámetros del encabezado | ||
Prefer: | outlook.timezone | La zona horaria predeterminada para los eventos en la respuesta. |
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. |
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
- 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/beta/me/calendarview?startdatetime=2015-01-01T00:00:00Z&enddatetime=2015-04-10T00:00:00Z HTTP/1.1
Authorization: Bearer <token>
Prefer: odata.track-changes
Prefer: odata.maxpagesize=1
Prefer: outlook.timezone="Pacific Standard Time"
Ejemplo de datos de respuesta inicial
Preference-Applied: odata.track-changes
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarView",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('user0@contoso.com')/Events('asdas==')",
"@odata.etag": "W/\"L8Z+4Y4u7k+97uRKg==\"",
"Id": "AQMkANJAAAAA==",
"ChangeKey": "L8Z+AAAAARKg==",
"Categories": [
],
"DateTimeCreated": "2015-04-10T17:54:49.2725912Z",
"DateTimeLastModified": "2015-04-10T17:54:49.3038538Z",
"Subject": "Discuss the Calendar REST API",
"BodyPreview": "I think it will meet our requirements!",
"Body": {
"ContentType": "HTML",
"Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nI think it will meet our requirements!\r\n</body>\r\n</html>\r\n"
},
"Importance": "Normal",
"HasAttachments": false,
"Start": {
"DateTime": "2015-04-05T18:00:00",
"TimeZone": "Pacific Standard Time"
}
"End": {
"DateTime": "2015-04-05T19:00:00",
"TimeZone": "Pacific Standard Time"
}
"ReminderMinutesBeforeStart": "15",
"IsReminderOn": "true",
"Location":{
"DisplayName":"",
"LocationType":"Default",
"Address":{
"Type":"Unknown"
},
"Coordinates":{
}
},
"Locations":[
],
"ResponseStatus": {
"Response": "Organizer",
"Time": "0001-01-01T00:00:00Z"
},
"ShowAs": "Busy",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"Type": "SingleInstance",
"SeriesMasterId": null,
"Attendees": [
],
"Recurrence": null,
"OriginalEndTimeZone": "Pacific Standard Time",
"OriginalStartTimeZone": "Pacific Standard Time",
"Organizer": {
"EmailAddress": {
"Address": "user0@contoso.com",
"Name": "user0"
}
},
"iCalUId": "040000008200E9888E07599CCFA23",
"WebLink": "https://outlook.office.com/owa/?ItemID=AAAINJAAAAA%3D%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
"OnlineMeetingUrl": null
}
],
"@odata.deltaLink": "https://outlook.office.com/api/beta/me/calendarview/?startdatetime=2015-01-01T00%3a00%3a00Z&enddatetime=2015-04-10T00%3a00%3a00Z&%24deltatoken=v2%2cH4roCAAA%3d%2c1.0%2cFalse%2cA00%2c"
}
Segunda solicitud de ejemplo
GET https://outlook.office.com/api/beta/me/calendarview?startdatetime=2015-01-01T00:00:00Z&enddatetime=2015-04-10T00:00:00Z&$deltatoken=v2%2cH4roCAAA%3d%2c1.0%2cFalse%2cA00%2c
Authorization: Bearer <token>
Prefer: odata.track-changes
Prefer: odata.maxpagesize=1
Prefer: outlook.timezone="Pacific Standard Time"
Ejemplo de datos de segunda respuesta
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarView/$delta",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('user0@contoso.com')/Events('AAMkAD0jAAA=')",
"@odata.etag": "W/\"P2fd7QAAAAAVFA==\"",
"Id": "AAMkADNkNmVlOTITVAAAAAA0jAAA=",
"ChangeKey": "P2fdmIU1QAAAAAVFA==",
"Categories": [
],
"DateTimeCreated": "2015-04-15T18:59:11.0226221Z",
"DateTimeLastModified": "2015-04-15T18:59:11.0694979Z",
"Subject": "1 hour",
"BodyPreview": "\u200b",
"Body": {
"ContentType": "HTML",
"Content": "<html><body>content</body></html>"
},
"Importance": "Normal",
"HasAttachments": false,
"Start": {
"DateTime": "2015-04-16T18:00:00",
"TimeZone": "Pacific Standard Time"
}
"End": {
"DateTime": "2015-04-16T19:00:00",
"TimeZone": Pacific Standard Time"
}
"ReminderMinutesBeforeStart": "15",
"IsReminderOn": "true",
"Location":{
"DisplayName":"",
"LocationType":"Default",
"Address":{
"Type":"Unknown"
},
"Coordinates":{
}
},
"Locations":[
],
"ResponseStatus": {
"Response": "Organizer",
"Time": "0001-01-01T00:00:00Z"
},
"ShowAs": "Busy",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"Type": "SingleInstance",
"SeriesMasterId": null,
"Attendees": [
],
"Recurrence": null,
"OriginalEndTimeZone": "Pacific Standard Time",
"OriginalStartTimeZone": "Pacific Standard Time",
"Organizer": {
"EmailAddress": {
"Address": "user0@contoso.com",
"Name": "user0"
}
},
"iCalUId": "040000008200E09BB89A316862",
"WebLink": "https://outlook.office.com/owa/?ItemID=AAMkADNkNmVlOAA%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
"OnlineMeetingUrl": null
}
],
"@odata.nextLink": "https://outlook.office.com/api/beta/me/calendarview/?startdatetime=2015-01-01T00%3a00%3a00Z&enddatetime=2015-08-10T00%3a00%3a00Z&%24skipToken=530c9d02ae1a4d96804538bd4d381546"
}
API de búsqueda de horas para reuniones
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- 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 | Collection(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 zona horaria configurada para el buzón. Este es el valor predeterminado si no se especifica ActivityDomain. |
Personal | Las sugerencias se encuentran dentro de la jornada laboral del usuario y en sábado y domingo. El valor predeterminado es del lunes al domingo, de 8 a.m. a 5 p.m., en la configuración de zona horaria 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 la reunión solicitada, y el período de tiempo solicitado.
POST https://outlook.office.com/api/beta/me/findmeetingtimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json
{
"Attendees": [
{
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
}
],
"TimeConstraint": {
"ActivityDomain":"Work",
"Timeslots": [
{
"Start": {
"DateTime": "2016-05-20T07:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T17:00:00",
"TimeZone": "Pacific Standard Time"
}
}
]
},
"MeetingDuration": "PT1H"
}
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
"MeetingTimeSuggestions": [
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-20T10:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T11:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
{
"Attendee": {
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
},
"Availability": "Free"
}
],
"Locations": [
{
"DisplayName": "Tokyo conference room",
"LocationType": "Default"
}
]
},
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-20T11:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T12:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
{
"Attendee": {
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
},
"Availability": "Free"
}
],
"Locations": [
{
"DisplayName": "Paris conference room",
"LocationType": "Default"
}
]
}
],
"EmptySuggestionsReason": ""
}
Buscar horario de reunión en una ubicación conocida y recibir un motivo para cada sugerencia
Buscar 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/beta/me/findmeetingtimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json
{
"Attendees": [
{
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
}
],
"LocationConstraint": {
"IsRequired": "false",
"SuggestLocation": "false",
"Locations": [
{
"ResolveAvailability": "false",
"DisplayName": "Conf room Hood"
}
]
},
"TimeConstraint": {
"ActivityDomain":"Work",
"Timeslots": [
{
"Start": {
"DateTime": "2016-05-20T07:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T17:00:00",
"TimeZone": "Pacific Standard Time"
}
}
]
},
"MeetingDuration": "PT2H",
"ReturnSuggestionReasons": "true"
}
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
"MeetingTimeSuggestions": [
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-20T10:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T12:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
{
"Attendee": {
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
},
"Availability": "Free"
}
],
"Locations": [
{
"DisplayName": "Conf room Hood"
"LocationType": "Default"
}
],
"SuggestionReason": "Suggested because it is one of the nearest times when all attendees are available."
}
],
"EmptySuggestionsReason": ""
}
Buscar horario de reunión pero no hay asistentes disponibles
Buscar 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/beta/me/findmeetingtimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json
{
"Attendees": [
{
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
}
],
"LocationConstraint": {
"IsRequired": "false",
"SuggestLocation": "false",
"Locations": [
{
"ResolveAvailability": "false",
"DisplayName": "Conf room Hood"
}
]
},
"TimeConstraint": {
"Timeslots": [
{
"Start": {
"DateTime": "2016-05-20T7:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T14:00:00",
"TimeZone": "Pacific Standard Time"
}
}
]
},
"MeetingDuration": "PT2H"
}
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
"MeetingTimeSuggestions": [
],
"EmptySuggestionsReason": "AttendeesUnavailable"
}
Buscar horario de reunión pero solo algunos asistentes están disponibles
Buscar 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 2 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/beta/me/findmeetingtimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json
{
"Attendees": [
{
"Type": "Required",
"EmailAddress": {
"Name": "Fanny",
"Address": "fannyd@prosewareltd.onmicrosoft.com"
}
},
{
"Type": "Optional",
"EmailAddress": {
"Name": "Dana",
"Address": "danas@prosewareltd.onmicrosoft.com"
}
}
],
"LocationConstraint": {
"IsRequired": "false",
"SuggestLocation": "false",
"Locations": [
{
"ResolveAvailability": "false",
"DisplayName": "Conf room Hood"
}
]
},
"TimeConstraint": {
"ActivityDomain":"Work",
"Timeslots": [
{
"Start": {
"DateTime": "2016-05-20T09:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T17:00:00",
"TimeZone": "Pacific Standard Time"
}
}
]
},
"MeetingDuration": "PT1H",
"ReturnSuggestionReasons": "true",
"MinimumAttendeePercentage": "60"
}
Respuesta de muestra
Código de estado: 200
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
"MeetingTimeSuggestions":[
{
"MeetingTimeSlot":{
"Start":{
"DateTime":"2016-05-20T10:00:00.0000000",
"TimeZone":"Pacific Standard Time"
},
"End":{
"DateTime":"2016-05-20T11:00:00.0000000",
"TimeZone":"Pacific Standard Time"
}
},
"Confidence":100.0,
"OrganizerAvailability":"Free",
"AttendeeAvailability":[
{
"Attendee":{
"Type":"Required",
"EmailAddress":{
"Name": "Fanny",
"Address":"fannyd@prosewareltd.onmicrosoft.com"
}
},
"Availability":"Free"
},
{
"Attendee":{
"Type":"Required",
"EmailAddress":{
"Name": "Dana",
"Address":"danas@prosewareltd.onmicrosoft.com"
}
},
"Availability":"Free"
}
],
"Locations":[
{
"DisplayName":"Conf room Hood"
"LocationType": "Default"
}
],
"SuggestionReason":"Suggested because it is one of the nearest times when most attendees are available."
},
{
"MeetingTimeSlot":{
"Start":{
"DateTime":"2016-05-20T11:00:00.0000000",
"TimeZone":"Pacific Standard Time"
},
"End":{
"DateTime":"2016-05-20T12:00:00.0000000",
"TimeZone":"Pacific Standard Time"
}
},
"Confidence":74.5,
"OrganizerAvailability":"Free",
"AttendeeAvailability":[
{
"Attendee":{
"Type":"Required",
"EmailAddress":{
"Name": "Fanny",
"Address":"fannyd@prosewareltd.onmicrosoft.com"
}
},
"Availability":"Free"
},
{
"Attendee":{
"Type":"Required",
"EmailAddress":{
"Name": "Dana",
"Address":"danas@prosewareltd.onmicrosoft.com"
}
},
"Availability":"Unknown"
}
],
"Locations":[
{
"DisplayName":"Conf room Hood"
"LocationType": "Default"
}
],
"SuggestionReason":"Suggested because it is one of the nearest times when most attendees are available."
}
],
"EmptySuggestionsReason":""
}
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 1 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/beta/me/findmeetingtimes
Prefer: outlook.timezone="Pacific Standard Time"
Content-Type: application/json
{
"Attendees": [],
"TimeConstraint": {
"ActivityDomain":"Unrestricted",
"Timeslots": [
{
"Start": {
"DateTime": "2016-05-20T06:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-22T23:00:00",
"TimeZone": "Pacific Standard Time"
}
}
]
},
"MeetingDuration": "PT1H"
}
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Microsoft.OutlookServices.MeetingTimeSuggestionsResult",
"MeetingTimeSuggestions": [
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-20T06:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-20T07:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
],
"Locations": [
]
},
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-21T09:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-21T10:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
],
"Locations": [
]
},
{
"MeetingTimeSlot": {
"Start": {
"DateTime": "2016-05-22T19:00:00.0000000",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2016-05-22T20:00:00.0000000",
"TimeZone": "Pacific Standard Time"
}
},
"Confidence": 100.0,
"OrganizerAvailability": "Free",
"AttendeeAvailability": [
],
"Locations": [
]
}
],
"EmptySuggestionsReason": ""
}
Obtener salas de reuniones (versión preliminar)
En Outlook, un inquilino puede organizar salas de reuniones en listas de salas. Cada sala de reuniones y lista de salas está representada por una instancia de EmailAddress.
- Obtener listas de salas (versión preliminar)
- Obtener salas (versión preliminar)
Obtener listas de salas (versión preliminar)
Ámbito mínimo necesario
Uno de los siguientes:
- User.Read.All
- User.ReadBasic.All_
Obtener las listas de salas definidas en un inquilino.
GET https://outlook.office.com/api/beta/me/findroomlists
Tipo de respuesta
Colección de instancias de EmailAddress. Si no hay listas definidas en el inquilino, se devuelve una matriz vacía.
Solicitud de muestra
GET https://outlook.office.com/api/beta/me/findroomlists
Respuesta de muestra
Status code: 200
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Collection(Microsoft.OutlookServices.EmailAddress)",
"value":[
{
"Name":"Building 1 Rooms",
"Address":"Building1Rooms@contoso.onmicrosoft.com"
},
{
"Name":"Building 2 Rooms",
"Address":"Building2Rooms@contoso.onmicrosoft.com"
}
]
}
Obtener salas (versión preliminar)
Ámbito mínimo necesario
Uno de los siguientes:
- User.Read.All
- User.ReadBasic.All
Puede obtener todas las salas de reuniones definidas en el inquilino del usuario u obtener las salas de reuniones en una lista de salas específica.
Nota
Estas operaciones devuelven como máximo las primeras 100 salas en un inquilino.
Para obtener todas las salas en el inquilino del usuario:
GET https://outlook.office.com/api/beta/me/findrooms
Para obtener las salas en una lista de salas específica:
GET https://outlook.office.com/api/beta/me/findrooms(roomlist='{room_list}')
Parámetro opcional | Tipo | Descripción |
---|---|---|
Parámetro de la función | ||
room_list | cadena | La dirección SMTP asociada con la lista de salas. Cada lista de salas está representada por una instancia de EmailAddress que incluye una dirección SMTP. |
Tipo de respuesta
Colección de instancias de EmailAddress.
Solicitud de muestra
El siguiente ejemplo obtiene las salas definidas en el inquilino del usuario que ha iniciado sesión.
GET https://outlook.office.com/api/beta/me/findrooms
Respuesta de muestra
Status code: 200
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Collection(Microsoft.OutlookServices.EmailAddress)",
"value":[
{
"Name":"Conf Room Adams",
"Address":"Adams@contoso.onmicrosoft.com"
},
{
"Name":"Conf Room Baker",
"Address":"Baker@contoso.onmicrosoft.com"
},
{
"Name":"Conf Room Crystal",
"Address":"Crystal@contoso.onmicrosoft.com"
},
{
"Name":"Conf Room Hood",
"Address":"Hood@contoso.onmicrosoft.com"
},
{
"Name":"Conf Room Rainier",
"Address":"Rainier@contoso.onmicrosoft.com"
},
{
"Name":"Conf Room Stevens",
"Address":"Stevens@contoso.onmicrosoft.com"
},
{
"Name":"SurfaceHub",
"Address":"SurfaceHub@contoso.onmicrosoft.com"
}
]
}
Solicitud de muestra
El siguiente ejemplo obtiene las salas de la lista de salas especificadas identificada por la dirección de correo electrónico Building2Rooms@contoso.onmicrosoft.com.
GET https://outlook.office.com/api/beta/me/findrooms(roomlist='Building2Rooms@contoso.onmicrosoft.com')
Respuesta de muestra
Status code: 200
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Collection(Microsoft.OutlookServices.EmailAddress)",
"value":[
{
"Name":"Conf Room Baker",
"Address":"Baker@contoso.onmicrosoft.com"
},
{
"Name":"Conf Room Hood",
"Address":"Hood@contoso.onmicrosoft.com"
},
{
"Name":"Conf Room Rainier",
"Address":"Rainier@contoso.onmicrosoft.com"
}
]
}
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/beta/me/events
POST https://outlook.office.com/api/beta/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
El siguiente ejemplo crea un evento para que el organizador y los asistentes participen desde 3 ubicaciones distintas.
POST https://outlook.office.com/api/beta/me/events
Content-Type: application/json
{
"Subject": "Plan summer company picnic",
"Body": {
"ContentType": "HTML",
"Content": "Let's kick-start this event planning!"
},
"Start": {
"DateTime": "2017-06-09T11:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2017-06-09T12:00:00",
"TimeZone": "Pacific Standard Time"
},
"Attendees": [
{
"EmailAddress": {
"Address": "AdeleV@contoso.onmicrosoft.com",
"Name": "Adele Vance"
},
"Type": "Required"
},
{
"EmailAddress": {
"Address": "AlexW@contoso.onmicrosoft.com",
"Name": "Alex Wilber"
},
"Type": "Required"
}
],
"Location": {
"DisplayName": "Conf Room 3; Fourth Coffee; Home Office",
"LocationType": "Default"
},
"Locations": [
{
"DisplayName": "Conf Room 3",
},
{
"DisplayName": "Fourth Coffee",
"Address": {
"Street": "4567 Main St",
"City": "Redmond",
"State": "WA",
"CountryOrRegion": "US",
"PostalCode": "32008"
},
"Coordinates": {
"Latitude": 47.672,
"Longitude": -102.103
},
"LocationType": "LocalBusiness"
},
{
"DisplayName": "Home Office",
}
]
}
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('94447c6e-ea4c-494c-a9ed-d905e366c5cb@007e925e-fb5a-4f60-9cb6-58a21e692480')/Events('AAMkADNCYBXsvAAA=')",
"@odata.etag":"W/\"SuFHwDRP1EeXJUopWbSLlgAAmBvk2g==\"",
"Id":"AAMkADNCYBXsvAAA=",
"CreatedDateTime":"2017-06-06T19:59:23.003773-07:00",
"LastModifiedDateTime":"2017-06-06T19:59:24.8432785-07:00",
"ChangeKey":"SuFHwDRP1EeXJUopWbSLlgAAmBvk2g==",
"Categories":[
],
"OriginalStartTimeZone":"Pacific Standard Time",
"OriginalEndTimeZone":"Pacific Standard Time",
"iCalUId":"040000008200E00074C5B7101A82E008000000000FD9CB103ADFD20100000000000000001000000026DB266A0E3C4A4FB15DC14FFFB1469D",
"ReminderMinutesBeforeStart":15,
"IsReminderOn":true,
"HasAttachments":false,
"Subject":"Plan summer company picnic",
"BodyPreview":"Let's kick-start this event planning!",
"Importance":"Normal",
"Sensitivity":"Normal",
"IsAllDay":false,
"IsCancelled":false,
"IsOrganizer":true,
"ResponseRequested":true,
"SeriesMasterId":null,
"ShowAs":"Busy",
"Type":"SingleInstance",
"WebLink":"https://outlook.office365.com/owa/?itemid=AAMkADNCYBXsvAAA%3D&exvsurl=1&path=/calendar/item",
"OnlineMeetingUrl":null,
"ResponseStatus":{
"Response":"Organizer",
"Time":"0001-01-01T00:00:00Z"
},
"Body":{
"ContentType":"HTML",
"Content":"<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<meta content=\"text/html; charset=us-ascii\">\r\n</head>\r\n<body>\r\nLet's kick-start this event planning!\r\n</body>\r\n</html>\r\n"
},
"Start":{
"DateTime":"2017-06-09T11:00:00.0000000",
"TimeZone":"Pacific Standard Time"
},
"End":{
"DateTime":"2017-06-09T12:00:00.0000000",
"TimeZone":"Pacific Standard Time"
},
"Location":{
"DisplayName":"Conf Room 3; Fourth Coffee; Home Office",
"LocationType":"Default"
},
"Locations":[
{
"DisplayName":"Conf Room 3",
"LocationType":"Default"
},
{
"DisplayName":"Fourth Coffee",
"LocationType":"Default",
"Address":{
"Type":"Unknown",
"Street":"4567 Main St",
"City":"Redmond",
"State":"WA",
"CountryOrRegion":"US",
"PostalCode":"32008"
},
"Coordinates":{
"Latitude":47.672,
"Longitude":-102.103
}
},
{
"DisplayName":"Home Office",
"LocationType":"Default"
}
],
"Recurrence":null,
"Attendees":[
{
"Type":"Required",
"Status":{
"Response":"None",
"Time":"0001-01-01T00:00:00Z"
},
"EmailAddress":{
"Name":"Adele Vance",
"Address":"AdeleV@contoso.onmicrosoft.com"
}
},
{
"Type":"Required",
"Status":{
"Response":"None",
"Time":"0001-01-01T00:00:00Z"
},
"EmailAddress":{
"Name":"Alex Wilber",
"Address":"AlexW@contoso.onmicrosoft.com"
}
}
],
"Organizer":{
"EmailAddress":{
"Name":"Fanny Downs",
"Address":"fannyd@contoso.onmicrosoft.com"
}
},
"OnlineMeeting":null
}
Tipo de 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/beta/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/beta/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.
PATCH https://outlook.office.com/api/beta/me/events/AAMkAGE1MFKPQWAAA=?$select=Location
Solicitud de muestra
PATCH https://outlook.office.com/api/beta/me/events/AAMkAGE0M4v1OAAA=
Content-Type: application/json
{
"Location": {
"DisplayName": "Conference Rome",
"LocationType": "ConferenceRoom"
}
}
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGE0M4v1OAAA=')",
"@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeNheQ==\"",
"Id": "AAMkAGE0M4v1OAAA=",
"ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeNheQ==",
"Categories": [],
"CreatedDateTime": "2014-01-22T20:49:05.5657528Z",
"LastModifiedDateTime": "2014-01-22T21:14:17.4886416Z",
"Subject": "Discuss the Calendar REST API",
"BodyPreview": "I think it will meet our requirements!",
"Body": {
"ContentType": "HTML",
"Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nI think it will meet our requirements!\r\n</body>\r\n</html>\r\n"
},
"Importance": "Normal",
"HasAttachments": false,
"Start": {
"DateTime": "2014-02-02T18:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2014-02-02T19:00:00",
"TimeZone": "Pacific Standard Time"
},
"Location": {
"DisplayName": "Conference Rome",
"LocationType": "ConferenceRoom"
},
"Locations":[
{
"DisplayName":"Conference Rome",
"LocationType":"ConferenceRoom"
}
],
"ShowAs": "Busy",
"IsAllDay": false,
"IsCancelled": false,
"IsOrganizer": true,
"ResponseRequested": true,
"Type": "SingleInstance",
"SeriesMasterId": null,
"Attendees": [],
"Recurrence": null,
"OriginalEndTimeZone": "Pacific Standard Time",
"OriginalStartTimeZone": "Pacific Standard Time",
"Organizer": {
"EmailAddress": {
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
"Name": "alexd"
}
},
"OnlineMeetingUrl": null
}
Tipo de 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.
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/beta/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 | ||
Comment | 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/beta/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/beta/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 | ||
Comment | 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/beta/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/beta/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 | ||
Comment | 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/beta/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)
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.read
- wl.calendars
- wl.contacts_calendars
Esta acción permite al organizador o al asistente de un evento de reunión reenviar la solicitud de reunión a un nuevo destinatario.
Si el evento de reunión se reenvía de un buzón de Office 365 a otro destinatario, esta acción también envía un mensaje para notificar al organizador del reenvío y agrega el destinatario a la copia del evento de reunión del organizador. Esta conveniencia no está disponible al reenviar desde una cuenta de Outlook.com.
POST https://outlook.office.com/api/beta/me/events('{event_id}')/forward
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. |
Parámetros de cuerpo | ||
Comment | cadena | Comentario que se va a incluir. Puede ser una cadena vacía. |
ToRecipients | Collection(Recipient) | La lista de destinatarios a la que se reenviará el evento. |
Solicitud de muestra
POST https://outlook.office.com/api/beta/me/events('AQMkADJmMTU4AAAA=')/forward
Content-Type: application/json
{
"ToRecipients":[
{
"EmailAddress": {
"Address":"danas@contoso.onmicrosoft.com",
"Name":"Dana Swope"
}
}
],
"Comment": "Dana, hope you can make this meeting."
}
Respuesta de muestra
Status code: 202 Accepted
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.
Esta acción difiere de Cancelar en que Eliminar está disponible para el organizador y los asistentes de la reunión. Si el usuario que ha iniciado sesión es el organizador de la reunión, el usuario simplemente cancela la reunión sin proporcionar un mensaje de cancelación personalizado a los asistentes.
DELETE https://outlook.office.com/api/beta/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/beta/me/events/AAMkAGE0M4v1OAAA=
Respuesta de muestra
Status code: 204
Cancelar eventos (versión preliminar)
Ámbito mínimo necesario
Uno de los siguientes:
- https://outlook.office.com/calendars.readwrite
- wl.calendars_update
- wl.events_create
Esta acción permite al organizador de una reunión enviar un mensaje de cancelación y cancelar el evento.
La acción mueve el evento a la carpeta Elementos eliminados. El organizador también puede cancelar una repetición de una reunión periódica proporcionando el Id. de evento de repetición. Un asistente que realiza esta acción recibe un error (HTTP 400 Solicitud incorrecta) con el siguiente mensaje de error:
"Su solicitud no puede completarse. Debe ser un organizador para cancelar una reunión. "
Esta acción difiere de Eliminar en que Cancelar está disponible solo para el organizador y permite que el organizador envíe un mensaje personalizado a los asistentes sobre la cancelación.
POST https://outlook.office.com/api/beta/me/events/{event_id}/Cancel
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros de dirección URL | ||
event_id | cadena | Id. de evento. |
Parámetros de cuerpo | ||
Comment | cadena | Un comentario sobre la cancelación enviado a todos los asistentes. |
Solicitud de muestra
POST https://outlook.office.com/api/beta/me/events/AAMkAGE0M4v1OAAA=/Cancel
Content-Type: application/json
{
"Comment": "Cancelling this meeting as there is a time conflict for most folks."
}
Respuesta de muestra
Status code: 202
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/beta/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, ItemAttachment o ReferenceAttachment.
Solicitud de muestra
GET https://outlook.office.com/api/beta/me/events/AAMkAGI2NGTG9yAAA=/attachments
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events('AAMkAGI2NG9yAAA%3D')/Attachments",
"value": [
{
"@odata.type": "#Microsoft.OutlookServices.FileAttachment",
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2NGTG9yAAA=')/Attachments('AAMkAGI2NGLwydGuOzcHf1FBlo=')",
"Id": "AAMkAGI2NGLwydGuOzcHf1FBlo=",
"LastModifiedDateTime": "2014-10-22T00:30:26Z",
"Name": "Company Party.docx",
"ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"Size": 11647,
"IsInline": false,
"ContentId": null,
"ContentLocation": null,
"ContentBytes": "UEsDBBQABgAIAAAAIQDfpNJs...AAF4pAAAAAA=="
}
]
}
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/beta/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, elemento adjunto o referencia adjunta solicitado.
Solicitud de muestra
El siguiente ejemplo recibe el archivo adjunto a un evento específico.
GET https://outlook.office.com/api/beta/me/events/AAMkAGI2WRAAADTG9yAAA=/attachments/AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events('AAMkAGI2WRAAADTG9yAAA%3D')/Attachments/$entity",
"@odata.type": "#Microsoft.OutlookServices.FileAttachment",
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2WRAAADTG9yAAA=')/Attachments('AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=')",
"Id": "AAMkAGI2TG9yAAABEgAQALxJtn1LwydGuOzcHf1FBlo=",
"LastModifiedDateTime": "2014-10-22T00:30:26Z",
"Name": "Company Party.docx",
"ContentType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"Size": 11647,
"IsInline": false,
"ContentId": null,
"ContentLocation": null,
"ContentBytes": "UEsDBBQABgAIAAAAIQD...AAF4pAAAAAA=="
}
Ejemplo de solicitud (referencia adjunta)
El siguiente ejemplo recibe la referencia adjunta de un evento.
GET https://outlook.office.com/api/beta/me/events('AAMkAGE1Mbs88AADggYEcAAA=')/attachments('AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=')
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events('AAMkAGE1Mbs88AADggYEcAAA%3D')/attachments/$entity",
"@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
"id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=",
"lastModifiedDateTime": "2016-03-22T22:27:20Z",
"name": "Hydrangea picture",
"contentType": null,
"size": 412,
"isInline": false,
"sourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
"providerType": "oneDriveBusiness",
"thumbnailUrl": null,
"previewUrl": null,
"permission": "edit",
"isFolder": false
}
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/beta/me/events('AAMkAGE1Mbs88AADggYEcAAA=')?$expand=attachments
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events/$entity",
"@odata.etag": "W/\"mODEKWhc/Um6lA3uPm7PPAAA4KZrtA==\"",
"id": "AAMkAGE1Mbs88AADggYEcAAA=",
"createdDateTime": "2016-03-22T22:19:58.1359352Z",
"lastModifiedDateTime": "2016-03-22T22:39:09.9335289Z",
"changeKey": "mODEKWhc/Um6lA3uPm7PPAAA4KZrtA==",
"categories": [
],
"originalStartTimeZone": "Pacific Standard Time",
"originalEndTimeZone": "Pacific Standard Time",
"responseStatus": {
"response": "organizer",
"time": "0001-01-01T00:00:00Z"
},
"iCalUId": "040000008200E00074C5B7101A82E008000000005895FCF78884D10100000000000000001000000099DD7CA6BCF37C4F9F7DAACCADDD6B89",
"reminderMinutesBeforeStart": 15,
"isReminderOn": true,
"hasAttachments": true,
"subject": "Plan Easter egg hunt!",
"body": {
"contentType": "html",
"content": "<html>\r\n<body>\r\nLet's get organized for this weekend's gathering.\r\n</body>\r\n</html>\r\n"
},
"bodyPreview": "Let's get organized for this weekend's gathering.",
"importance": "normal",
"sensitivity": "normal",
"start": {
"dateTime": "2016-03-26T17:00:00.0000000",
"timeZone": "UTC"
},
"end": {
"dateTime": "2016-03-26T18:00:00.0000000",
"timeZone": "UTC"
},
"location": {
"displayName": "",
"locationType": "default",
"address": {
"type": "unknown"
},
"coordinates": {
}
},
"locations": [
],
"isAllDay": false,
"isCancelled": false,
"isOrganizer": true,
"recurrence": null,
"responseRequested": true,
"seriesMasterId": null,
"showAs": "busy",
"type": "singleInstance",
"attendees": [
{
"status": {
"response": "none",
"time": "0001-01-01T00:00:00Z"
},
"type": "required",
"emailAddress": {
"name": "Randi Welch",
"address": "randiw@contoso.onmicrosoft.com"
}
}
],
"organizer": {
"emailAddress": {
"name": "Dana Swope",
"address": "danas@contoso.onmicrosoft.com"
}
},
"webLink": "https://outlook.office.com/owa/?ItemID=AAMkAGE1Mbs88AADggYEcAAA%3D&exvsurl=1&viewmodel=ICalendarItemDetailsViewModelFactory",
"onlineMeetingUrl": null,
"attachments@odata.context": "https://outlook.office.com/api/beta/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events('AAMkAGE1Mbs88AADggYEcAAA%3D')/attachments",
"attachments": [
{
"@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
"id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=",
"lastModifiedDateTime": "2016-03-22T22:27:20Z",
"name": "Hydrangea picture",
"contentType": null,
"size": 412,
"isInline": false,
"sourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
"providerType": "oneDriveBusiness",
"thumbnailUrl": null,
"previewUrl": null,
"permission": "edit",
"isFolder": false
},
{
"@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
"id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAE1rHHth7YNLlR9WsgnODy0=",
"lastModifiedDateTime": "2016-03-22T22:39:09Z",
"name": "Koala picture",
"contentType": null,
"size": 382,
"isInline": false,
"sourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/koala.jpg",
"providerType": "oneDriveBusiness",
"thumbnailUrl": null,
"previewUrl": null,
"permission": "edit",
"isFolder": false
}
]
}
Ejemplo de solicitud ($expand en elementos adjuntos anidados)
El siguiente ejemplo recibe un elemento adjunto anidado.
GET https://outlook-sdf.office.com/api/beta/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/beta/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/beta/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/beta/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/beta/me/events('AAMkAGE1Mbs88AADggYEcAAA=')/attachments
Content-Type: application/json
{
"@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
"Name": "Hydrangea picture",
"SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
"ProviderType": "oneDriveBusiness",
"Permission": "Edit",
"IsFolder": "False"
}
Respuesta de muestra
Código de estado: 201 - Creado
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#users('ddfcd489-628b-40d7-b48b-57002df800e5')/events('AAMkAGE1Mbs88AADggYEcAAA%3D')/attachments/$entity",
"@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment",
"Id": "AAMkAGE1Mbs88AADggYEcAAABEgAQAABWAoLgP3REt_LWRG8ORv4=",
"LastModifiedDateTime": "2016-03-22T22:27:20Z",
"Name": "Hydrangea picture",
"ContentType": null,
"Size": 412,
"IsInline": false,
"SourceUrl": "https://contoso-my.spoppe.com/personal/danas_contoso_onmicrosoft_com/Documents/Pics/hydrangea.jpg",
"ProviderType": "oneDriveBusiness",
"ThumbnailUrl": null,
"PreviewUrl": null,
"Permission": "edit",
"IsFolder": false
}
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, elemento adjunto o referencia adjunta.
DELETE https://outlook.office.com/api/beta/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/beta/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/beta/me/ReminderView(StartDateTime='{DateTime}',EndDateTime='{DateTime}')
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetros del encabezado | ||
Prefer: | 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/beta/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/beta/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/beta/me/calendars
GET https://outlook.office.com/api/beta/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
GET https://outlook.office.com/api/beta/me/calendars
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Calendars",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGI2TGuLAAA=')",
"Id": "AAMkAGI2TGuLAAA=",
"Name": "Calendar",
"Color": "Auto",
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
"IsDefaultCalendar": true,
"CanShare":true,
"CanViewPrivateItems":true,
"IsShared":false,
"IsSharedWithMe":false,
"CanEdit":true,
"Owner":{
"Name":"Fanny Downs",
"Address":"fannyd@adatum.onmicrosoft.com"
}
}
]
}
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/beta/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/beta/me/calendars/AAMkAGI2TGuLAAA=
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Calendars/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Calendars('AAMkAGI2TGuLAAA=')",
"Id": "AAMkAGI2TGuLAAA=",
"Name": "Calendar",
"Color": "Auto",
"IsDefaultCalendar": true,
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+w==",
"CanShare":true,
"CanViewPrivateItems":true,
"IsShared":false,
"IsSharedWithMe":false,
"CanEdit":true,
"Owner":{
"Name":"Fanny Downs",
"Address":"fannyd@adatum.onmicrosoft.com"
}
}
Tipo de 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/beta/me/calendars
POST https://outlook.office.com/api/beta/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/beta/me/calendars
Content-Type: application/json
{
"Name": "Volunteer"
}
Respuesta de muestra
Código de estado: 201
{
"@odata.context":"https://outlook.office.com/api/beta/$metadata#Me/Calendars/$entity",
"@odata.id":"https://outlook.office.com/api/beta/Users('266efe5a-0fd7-4edd-877b-b2d1e561f193@ae01a323-3934-4475-a32d-af1274312bb0')/Calendars('AAMkADJmMVAAA=')",
"Id":"AAMkADJmMVAAA=",
"Name":"Volunteer",
"Color":"Auto",
"IsDefaultCalendar":false,
"ChangeKey":"DxYSthXJXEWwAQSYQnXvIgAAIxGttg==",
"CanShare":true,
"CanViewPrivateItems":true,
"IsShared":false,
"IsSharedWithMe":false,
"CanEdit":true,
"Owner":{
"Name":"Fanny Downs",
"Address":"fannyd@adatum.onmicrosoft.com"
}
}
Tipo de 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/beta/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/beta/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/beta/$metadata#Me/Calendars/$entity",
"@odata.id":"https://outlook.office.com/api/beta/Users('266efe5a-0fd7-4edd-877b-b2d1e561f193@ae01a323-3934-4475-a32d-af1274312bb0')/Calendars('AAMkADJmMVAAA=')",
"Id":"AAMkADJmMVAAA=",
"Name":"Social events",
"Color":"Auto",
"IsDefaultCalendar":false,
"ChangeKey":"DxYSthXJXEWwAQSYQnXvIgAAIxGttg==",
"CanShare":true,
"CanViewPrivateItems":true,
"IsShared":false,
"IsSharedWithMe":false,
"CanEdit":true,
"Owner":{
"Name":"Fanny Downs",
"Address":"fannyd@adatum.onmicrosoft.com"
}
}
Tipo de 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/beta/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/beta/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/beta/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/beta/me/calendargroups
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarGroups",
"value": [
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuKAAA=')",
"Id": "AAMkAGI2TGuKAAA=",
"Name": "My Calendars",
"ClassId": "0006f0b7-0000-0000-c000-000000000046",
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+g=="
},
{
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuMAAA=')",
"Id": "AAMkAGI2TGuMAAA=",
"Name": "Other Calendars",
"ClassId": "0006f0b8-0000-0000-c000-000000000046",
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0/A=="
}
]
}
Tipo de 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/beta/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/beta/me/calendargroups/AAMkAGI2TGuKAAA=
Respuesta de muestra
Código de estado: 200
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarGroups/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGI2TGuKAAA=')",
"Id": "AAMkAGI2TGuKAAA=",
"Name": "My Calendars",
"ClassId": "0006f0b7-0000-0000-c000-000000000046",
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x0+g=="
}
Tipo de respuesta
El grupo de calendarios solicitado.
Crear grupos de calendarios
Cree 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/beta/me/calendargroups
Parámetro obligatorio | Tipo | Descripción |
---|---|---|
Parámetro URL | ||
Parámetros de cuerpo | ||
Nombre | cadena | Nombre del grupo de calendarios. |
Solicitud de muestra
POST https://outlook.office.com/api/beta/me/calendargroups
Content-Type: application/json
{
"Name": "Birthdays"
}
Respuesta de muestra
Código de estado: 201
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarGroups/$entity",
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGE0M4xLGAAA=')",
"@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Rw==\"",
"Id": "AAMkAGE0M4xLGAAA=",
"Name": "Birthdays",
"ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/Rw==",
"ClassId": "4d969bba-8942-42a0-ae33-c7d4410d1e11"
}
Tipo de 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/beta/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 | Nombre del grupo de calendarios actualizado. |
Solicitud de muestra
PATCH https://outlook.office.com/api/beta/me/calendargroups/AAMkAGE0M4xLGAAA=
Content-Type: application/json
{
"Name": "Holidays"
}
Respuesta de muestra
{
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/CalendarGroups/$entity",
"@odata.id": "https://https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/CalendarGroups('AAMkAGE0MGM4xLGAAA=')",
"@odata.etag": "W/\"Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SA==\"",
"Id": "AAMkAGE0MGM4xLGAAA=",
"Name": "Holidays",
"ChangeKey": "Jj9S59cHB0Wq4jXUzBgDvQAAFeN/SA==",
"ClassId": "4d969bba-8942-42a0-ae33-c7d4410d1e11"
}
Tipo de 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/beta/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/beta/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