Obtener evento

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Obtenga las propiedades y relaciones del objeto event especificado.

Una aplicación puede obtener un evento en el calendario de otro usuario si:

  • La aplicación tiene permisos de aplicación
  • La aplicación tiene los permisos delegados adecuados de un usuario y otro usuario ha compartido un calendario con ese usuario o ha concedido acceso delegado a ese usuario. Vea detalles y un ejemplo.

Dado que el recurso de evento admite extensiones, también puede usar la GET operación para obtener propiedades personalizadas y datos de extensión en una instancia de evento .

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Compatibilidad con varias zonas horarias

Para todas las operaciones GET que devuelven eventos, puede usar el encabezado Prefer: outlook.timezone para especificar la zona horaria de las horas de inicio y finalización del evento 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 el evento se ha creado en una zona horaria diferente, las horas de inicio y finalización se ajustarán a la zona horaria especificada en ese encabezado Prefer. Consulte esta lista para ver los nombres de zona horaria admitidos. Si no se especifica el encabezado Prefer: outlook.timezone, se devuelven las horas de inicio y finalización en hora UTC.

Puede usar las propiedades OriginalStartTimeZone y OriginalEndTimeZone del recurso event para averiguar la zona horaria usada al crear el evento.

Permisos

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Calendars.ReadBasic Calendars.Read
Delegado (cuenta personal de Microsoft) Calendars.ReadBasic Calendars.Read
Aplicación Calendars.ReadBasic Calendars.Read

Solicitud HTTP

GET /me/events/{id}
GET /users/{id | userPrincipalName}/events/{id}
GET /groups/{id}/events/{id}

GET /me/calendar/events/{id}
GET /users/{id | userPrincipalName}/calendar/events/{id}
GET /groups/{id}/calendar/events/{id}

GET /me/calendars/{id}/events/{id}
GET /users/{id | userPrincipalName}/calendars/{id}/events/{id}

GET /me/calendarGroups/{id}/calendars/{id}/events/{id}
GET /users/{id | userPrincipalName}/calendarGroups/{id}/calendars/{id}/events/{id}

Parámetros de consulta opcionales

Este método admite los parámetros de consulta de OData a modo de ayuda para personalizar la respuesta.

Encabezados de solicitud

Nombre Tipo Descripción
Authorization string {token} de portador. Obligatorio.
Prefer: outlook.timezone string Se usa para especificar la zona horaria de las horas de inicio y final de la respuesta. Si no se especifican, estos valores de hora se devuelven en UTC. Opcional.
Prefer: outlook.body-content-type string Formato de la propiedad body que se devolverá. Los valores pueden ser "text" o "html". Se devuelve un encabezado Preference-Applied como confirmación si se especifica este encabezado Prefer. Si no se especifica el encabezado, la propiedad body se devuelve en formato HTML. Opcional.

Cuerpo de la solicitud

No proporcione un cuerpo de solicitud para este método.

Respuesta

Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK y el objeto de evento en el cuerpo de la respuesta.

Ejemplos

Ejemplo 1: Obtener un evento especificado

Solicitud

En el ejemplo siguiente se obtiene el evento especificado. Especifica lo siguiente:

  • Un encabezado Prefer: outlook.timezone para obtener valores de fecha y hora devueltos en la hora estándar del Pacífico.
  • Parámetro de $select consulta para devolver propiedades específicas. Sin ningún parámetro $select, se devolverán todas las propiedades de evento.

La solicitud no especifica ningún encabezado Prefer: outlook.body-content-type para indicar un formato específico para el cuerpo del evento devuelto.

GET https://graph.microsoft.com/beta/me/events/AAMkAGIAAAoZDOFAAA=?$select=subject,body,bodyPreview,organizer,attendees,start,end,location,hideAttendees
Prefer: outlook.timezone="Pacific Standard Time"

Respuesta

En el ejemplo siguiente se muestra la respuesta. Como no se especificó ningún encabezado Prefer: outlook.body-content-type, se devuelve la propiedad body en el formato HTML predeterminado.

HTTP/1.1 200 OK
Content-type: application/json
Preference-Applied: outlook.timezone="Pacific Standard Time"

{
    "@odata.context":"https://graph.microsoft.com/beta/$metadata#users('cd209b0b-3f83-4c35-82d2-d88a61820480')/events(subject,body,bodyPreview,organizer,attendees,start,end,location,hideAttendees)/$entity",
    "@odata.etag":"W/\"ZlnW4RIAV06KYYwlrfNZvQAAKGWwbw==\"",
    "id":"AAMkAGIAAAoZDOFAAA=",
    "iCalUId": "040000008200E00074=",
    "uid": "040000008200E00074C=",
    "subject":"Orientation ",
    "bodyPreview":"Dana, this is the time you selected for our orientation. Please bring the notes I sent you.",
    "body":{
        "contentType":"html",
        "content":"<html><head></head><body><p>Dana, this is the time you selected for our orientation. Please bring the notes I sent you.</p></body></html>"
    },
    "start":{
        "dateTime":"2017-04-21T10:00:00.0000000",
        "timeZone":"Pacific Standard Time"
    },
    "end":{
        "dateTime":"2017-04-21T12:00:00.0000000",
        "timeZone":"Pacific Standard Time"
    },
    "location": {
        "displayName": "Assembly Hall",
        "locationType": "default",
        "uniqueId": "Assembly Hall",
        "uniqueIdType": "private"
    },
    "locations": [
        {
            "displayName": "Assembly Hall",
            "locationType": "default",
            "uniqueIdType": "unknown"
        }
    ],
    "attendees":[
        {
            "type":"required",
            "status":{
                "response":"none",
                "time":"0001-01-01T00:00:00Z"
            },
            "emailAddress":{
                "name":"Samantha Booth",
                "address":"samanthab@contoso.com"
            }
        },
        {
            "type":"required",
            "status":{
                "response":"tentativelyAccepted",
                "time":"0001-01-01T00:00:00Z"
            },
            "proposedNewTime": {
                "start": {
                    "dateTime": "2019-08-16T12:00:00.0000000",
                    "timeZone": "Pacific Standard Time"
                },
                "end": {
                    "dateTime": "2019-08-16T14:00:00.0000000",
                    "timeZone": "Pacific Standard Time"
                }
            },
            "emailAddress":{
                "name":"Dana Swope",
                "address":"danas@contoso.com"
            }
        }
    ],
    "hideAttendees": false,
    "organizer":{
        "emailAddress":{
            "name":"Samantha Booth",
            "address":"samanthab@contoso.com"
        }
    }
}

Ejemplo 2: Obtener la propiedad body en formato de texto

Solicitud

En el ejemplo siguiente se muestra cómo usar un Prefer: outlook.body-content-type="text" encabezado para obtener la propiedad body del evento especificado en formato de texto.

La solicitud también usa un parámetro de consulta $select para devolver propiedades específicas. Sin ningún parámetro $select, se devolverán todas las propiedades de evento.

GET https://graph.microsoft.com/beta/me/events/AAMkAGI1AAAoZDOFAAA=?$select=subject,body,bodyPreview
Prefer: outlook.body-content-type="text"

Respuesta

En el ejemplo siguiente se muestra la respuesta. Se devuelve la propiedad body en formato de texto.

HTTP/1.1 200 OK
Content-type: application/json
Preference-Applied: outlook.body-content-type="text"

{
    "@odata.context":"https://graph.microsoft.com/beta/$metadata#users('cd209b0b-3f83-4c35-82d2-d88a61820480')/events(subject,body,bodyPreview)/$entity",
    "@odata.etag":"W/\"ZlnW4RIAV06KYYwlrfNZvQAAKGWwbw==\"",
    "id":"AAMkAGI1AAAoZDOFAAA=",
    "iCalUId": "040000008200E00074=",
    "uid": "040000008200E00074C=",
    "subject":"Orientation ",
    "bodyPreview":"Dana, this is the time you selected for our orientation. Please bring the notes I sent you.",
    "body":{
        "contentType":"text",
        "content":"Dana, this is the time you selected for our orientation. Please bring the notes I sent you.\r\n"
    }
}

Ejemplo 3: Obtener un evento que especifica más de una ubicación

Solicitud

En el ejemplo siguiente se muestra cómo obtener un evento que especifica más de una ubicación. La solicitud especifica un parámetro de consulta $select para devolver propiedades específicas.

GET https://graph.microsoft.com/beta/me/events/AAMkADAGAADDdm4NAAA=?$select=subject,body,bodyPreview,organizer,attendees,start,end,location,locations

Respuesta

En el ejemplo siguiente se muestra la respuesta. La propiedad locations incluye detalles de las tres ubicaciones en las que se organiza el evento.

Dado que la solicitud no especifica ningún Prefer: outlook.timezone encabezado o Prefer: outlook.body-content-type , las propiedades start y end se muestran en la zona horaria UTC predeterminada y el cuerpo está en el formato HTML predeterminado.

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context":"https://graph.microsoft.com/beta/$metadata#users('d1a2fae9-db66-4cc9-8133-2184c77af1b8')/events(subject,body,bodyPreview,organizer,attendees,start,end,location,locations)/$entity",
  "@odata.etag":"W/\"y53lbKh6jkaxHzFwGhgyxgAAw5zhug==\"",
  "id":"AAMkADAGAADDdm4NAAA=",
  "iCalUId": "040000008200E00074=",
  "uid": "040000008200E00074C=",
  "subject":"Plan summer company picnic",
  "bodyPreview":"Let's kick-start this event planning!",
  "body":{
    "contentType":"html",
    "content":"<html>\r\n<head>\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-08-30T11:00:00.0000000",
    "timeZone":"UTC"
  },
  "end":{
    "dateTime":"2017-08-30T12:00:00.0000000",
    "timeZone":"UTC"
  },
  "location":{
    "displayName":"Conf Room 3; Fourth Coffee; Home Office",
    "locationType":"default",
    "uniqueId":"Conf Room 3; Fourth Coffee; Home Office",
    "uniqueIdType":"private"
  },
  "locations":[
    {
      "displayName":"Conf Room 3",
      "locationType":"default",
      "uniqueIdType":"unknown"
    },
    {
      "displayName":"Fourth Coffee",
      "locationType":"default",
      "uniqueId":"Fourth Coffee",
      "uniqueIdType":"private",
      "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",
      "uniqueIdType":"unknown"
    }
  ],
  "attendees":[
    {
      "type":"required",
      "status":{
        "response":"none",
        "time":"0001-01-01T00:00:00Z"
      },
      "emailAddress":{
        "name":"Dana Swope",
        "address":"DanaS@contoso.com"
      }
    },
    {
      "type":"required",
      "status":{
        "response":"none",
        "time":"0001-01-01T00:00:00Z"
      },
      "emailAddress":{
        "name":"Alex Wilber",
        "address":"AlexW@contoso.com"
      }
    }
  ],
  "organizer":{
    "emailAddress":{
      "name":"Adele Vance",
      "address":"AdeleV@contoso.com"
    }
  }
}

Ejemplo 4: Expansión de un evento maestro de serie

Solicitud

En el ejemplo siguiente se muestra la expansión de un evento maestro de serie de una serie periódica con excepciones y ocurrencias canceladas. La solicitud especifica un parámetro de consulta $select para devolver propiedades específicas.

GET https://graph.microsoft.com/beta/me/events/AAMkADAGAADDdm4NAAA=?$select=subject,start,end,occurrenceId,exceptionOccurrences,cancelledOccurrences&$expand=exceptionOccurrences

Respuesta

La operación GET devuelve las propiedades seleccionadas para el evento maestro de serie. En concreto, para los eventos de la colección exceptionOccurrences , la operación devuelve la propiedad id y las propiedades seleccionadas aplicables (subject, start, end, occurrenceId). En cuanto a los eventos de la colección cancelledOccurrences , dado que los eventos ya no existen, la operación devuelve solo sus valores de propiedad occurrenceId .

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.context":"https://graph.microsoft.com/beta/$metadata#users('d1a2fae9-db66-4cc9-8133-2184c77af1b8')/events(subject,start,end,occurrenceId,exceptionOccurrences,cancelledOccurrences)/$entity",
  "@odata.etag":"W/\"y53lbKh6jkaxHzFwGhgyxgAAw5zhug==\"",
  "id":"AAMkADAGAADDdm4NAAA=",
  "iCalUId": "040000008200E00074=",
  "uid": "040000008200E00074C=",
  "subject": "Daily stand-up",
  "cancelledOccurrences": [
     "OID.AAMkADAGAADDdm4NAAA=.2020-04-30",
     "OID.AAMkADAGAADDdm4NAAA=.2020-05-07",
     "OID.AAMkADAGAADDdm4NAAA=.2020-05-14"
    ],
  "occurrenceId": null,
    "start": {
        "dateTime": "2020-04-23T11:30:00.0000000",
        "timeZone": "UTC"
    },
  "end": {
        "dateTime": "2020-04-23T12:00:00.0000000",
        "timeZone": "UTC"
    },
  "exceptionOccurrences": [
        {
            "id": "AAMkADM0ZGRhMjdjLTA==",
            "Subject": "SM update 24",
            "occurrenceId": "OID.AAMkADAGAADDdm4NAAA=.2020-05-21",
            "start": {
                "dateTime": "2020-05-21T11:30:00.0000000",
                "timeZone": "UTC"
            },
            "end": {
                "dateTime": "2020-05-21T12:00:00.0000000",
                "timeZone": "UTC"
            }
        }
    ]
}