Referencia de la API de REST de las tareas de Outlook (versión 2.0)

Se aplica a: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com

La API de REST de tarea de Outlook le permite crear, leer, sincronizar, actualizar y eliminar las tareas de un usuario que están protegidas por Azure Active Directory en Office 365. La cuenta del usuario puede estar en Office 365 o ser una cuenta Microsoft (Hotmail.com, Live.com, MSN.com, Outlook.com y Passport.com).

Nota

Para simplificar la referencia, en el resto de este artículo se utiliza Outlook.com para englobar a estos dominios de cuentas Microsoft.

¿No está interesado en la versión 2.0 de la API? En el índice de la izquierda, vaya a la sección Referencia de la API de REST de Office 365 y seleccione la versión que desee.

Información general

Puede usar una tarea en Outlook para hacer un seguimiento de un elemento de trabajo. Puede anotar sus fechas de inicio, vencimiento o finalización real, su progreso o estado, o si es periódica o requiere recordatorio.

Las tareas están organizadas en carpetas de tareas que a su vez están organizadas en grupos de tareas. Cada buzón tiene una carpeta de tareas predeterminada (con la propiedad Nombre de Tasks) y un grupo de tareas predeterminado (la propiedad Nombre es My Tasks).

Uso de la API de REST de tareas

Autenticación

Como cualquier otra API de REST de Outlook, para cada solicitud a la API de tarea, debería incluir un token de acceso válido. Obtener un token de acceso le obliga a registrar e identificar su aplicación y a obtener la autorización correspondiente.

Puede saber más 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 tarea.

Versión de la API

El estado de esta API ha ascendido de versión preliminar a disponibilidad general. Es compatible con las versiones 2.0 y beta de la API de REST de Outlook.

Usuario destino

Las solicitudes de la API de tarea siempre se realizan en nombre del usuario que inició sesión.

Consulte Utilizar la API de REST de Outlook para obtener más información común a todos los subconjuntos de esa API.

Parámetros de URL

Los ejemplos de este artículo utilizan los siguientes marcadores de posición como parámetros de las URL de solicitud de REST.

Parámetro Tipo Descripción
Parámetros de URL
attachment_id cadena El id. numérico de un adjunto, único en el buzón del usuario.
folder_id
cadena El nombre de carpeta conocida Tasks predeterminado, o un id. numérico de una carpeta de tareas, único en el buzón del usuario.
group_id cadena El id. numérico de un grupo de tareas, único en el buzón del usuario.
task_id cadena El id. de tarea numérico, único en el buzón del usuario.

Especificar las propiedades StartDateTime y DueDateTime

Al crear una tarea:

  • StartDateTime y DueDateTime son opcionales, pero configurar StartDateTime requiere configurar DueDateTime en la misma fecha o posterior.
  • ** Si establece ** solo ** StartDateTime, ** DueDateTime ** se establecerá automáticamente en el mismo valor que StartDateTime.**
  • Si configura DueDateTime a null, entonces StartDateTime también se establecerá automáticamente en null.

Si elige establecer StartDateTime o DueDateTime al crear o actualizar una tarea:

  • Especifique la información de la fecha y la zona horaria.
  • No especifique un tiempo específico en estas propiedades, ya que el método POST (o PATCH) siempre lo ignora y asume la medianoche en la zona horaria especificada.
  • De forma predeterminada, el método POST (o PATCH) convierte el valor en UTC y lo devuelve en UTC en la respuesta.

Por ejemplo, si especifica el 26 de abril en hora estándar del este (EST) en StartDateTime:

  "StartDateTime": {
      "DateTime": "2016-04-26T09:00:00",
      "TimeZone": "Eastern Standard Time"
  }

POST (o PATCH) ignora la porción de tiempo, convierte 26 de abril a medianoche en EST a UTC y devuelve ese valor en UTC en la respuesta:

  "StartDateTime": {
    "DateTime": "2016-04-26T04:00:00.0000000",
    "TimeZone": "UTC"
  }

Puede usar el encabezado Prefer: outlook.timezone para tener todas las propiedades relacionadas con la fecha en la respuesta representadas en una zona horaria diferente a UTC.

Las propiedades relacionadas con la fecha del recurso Tarea incluyen lo siguiente:

  • CompletedDateTime
  • CreatedDateTime
  • DueDateTime
  • LastModifiedDateTime
  • ReminderDateTime
  • StartDateTime

De forma predeterminada, las operaciones POST, GET, PATCH y Complete devuelven propiedades relacionadas con la fecha en sus respuestas REST en UTC. Puede usar el encabezado Prefer: outlook.timezone para tener todas las propiedades relacionadas con la fecha en la respuesta representadas en una zona horaria diferente a UTC. El siguiente ejemplo devuelve propiedades relacionadas con la fecha en EST en la respuesta correspondiente:

Prefer: outlook.timezone="Eastern Standard Time"

Consulte Utilizar la API de REST de Outlook para obtener más información común a todos los subconjuntos de la API de REST de Outlook.

Crear tareas

Ámbito mínimo necesario

Crear una tarea. Hay 2 escenarios principales.

Puede crearMy Tasks una tarea en el grupo de tareas predeterminado () y la carpeta de tareas predeterminada () del buzón del usuario.Tasks En este caso, no necesita especificar ningún grupo de tareas o carpeta de tareas.

POST https://outlook.office.com/api/v2.0/me/tasks

También puede crear una tarea en una carpeta de tareas específica:

POST https://outlook.office.com/api/v2.0/me/taskfolders('{folder_id}')/tasks

En el cuerpo de la solicitud, proporcione una representación JSON de la tarea que quiere crear.

Más información sobre la configuración StartDateTime y DueDateTime.

Descubra cómo especificar una cierta zona horaria para todas las propiedades relacionadas con la fecha en la respuesta.

Respuesta

Código de estado de éxito: 201 Creado

Cuerpo de la respuesta: la tarea creada.

Solicitud de ejemplo

El primer ejemplo crea una tarea en la carpeta de tareas especificada y expresa StartDateTime y DueDateTime en hora estándar del Pacífico (PST) en el cuerpo de la solicitud.

POST https://outlook.office.com/api/v2.0/me/taskfolders('AAMkADIyAAAhrbPXAAA=')/tasks
Content-Type: application/json

{
  "Subject": "Shop for dinner",
  "StartDateTime": {
      "DateTime": "2016-04-23T18:00:00",
      "TimeZone": "Pacific Standard Time"
  },
  "DueDateTime":  {
      "DateTime": "2016-04-25T13:00:00",
      "TimeZone": "Pacific Standard Time"
  }
}

Respuesta de ejemplo

El método POST ignora la porción de tiempo en el cuerpo de la solicitud y asume que la hora es siempre la medianoche en la zona horaria especificada (PST). Luego, de manera predeterminada, el método POST convierte y muestra todas las propiedades relacionadas con la fecha en UTC en la respuesta.

Status code: 201 Created

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskFolders('AAMkADIyAAAhrbPXAAA%3D')/Tasks/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADIyAAAhrb_PAAA=')",
  "@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIbAOlw==\"",
  "Id": "AAMkADIyAAAhrb_PAAA=",
  "CreatedDateTime": "2016-04-22T05:44:01.2012012Z",
  "LastModifiedDateTime": "2016-04-22T05:44:02.9980882Z",
  "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMxw==",
  "Categories": [ ],
  "AssignedTo": null,
  "Body": {
    "ContentType": "Text",
    "Content": ""
  },
  "CompletedDateTime": null,
  "DueDateTime": {
    "DateTime": "2016-04-25T07:00:00.0000000",
    "TimeZone": "UTC"
  },
  "HasAttachments":false,
  "Importance": "Normal",
  "IsReminderOn": false,
  "Owner": "Administrator",
  "ParentFolderId": "AQMkADA1MTkAAAAIBEgAAAA==",
  "Recurrence": null,
  "ReminderDateTime": null,
  "Sensitivity": "Normal",
  "StartDateTime": {
    "DateTime": "2016-04-23T07:00:00.0000000",
    "TimeZone": "UTC"
  },
  "Status": "NotStarted",
  "Subject": "Shop for dinner"
}

Solicitud de ejemplo

Para mostrar cómo funciona el encabezado Prefer: outlook.timezone, el siguiente ejemplo crea una tarea, expresa StartDateTime y DueDateTime en hora estándar del este (EST), e incluye un encabezado Prefer de hora estándar del Pacífico (PST).

POST https://outlook.office.com/api/v2.0/me/tasks HTTP/1.1

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

{
  "Subject": "Shop for children's weekend",
  "StartDateTime": {
      "DateTime": "2016-05-03T09:00:00",
      "TimeZone": "Eastern Standard Time"
  },
  "DueDateTime":  {
      "DateTime": "2016-05-05T16:00:00",
      "TimeZone": "Eastern Standard Time"
  }
}

Respuesta de ejemplo

Al igual que en el último ejemplo, el método POST ignora la porción de tiempo de StartDateTime y DueDateTime en el cuerpo de la solicitud y asume que es siempre la medianoche en la zona horaria especificada (EST).

Debido a que el encabezado Prefer especifica PST, el método POST expresa todas las propiedades relacionadas con la fecha en la respuesta en PST. En particular, para las propiedades StartDateTime y DueDateTime, el método POST convierte la medianoche en EST a PST y los devuelve en PST en la respuesta.

Status code: 201 Created

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Tasks/$entity",
    "@odata.id": "https://outlook.office.com/api/v2.0/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/Tasks('AAMkADA1MHgwAAA=')",
    "@odata.etag": "W/\"1/KC9Vmu40G3DwB6Lgs7MAAAIW9XXA==\"",
    "Id": "AAMkADA1MHgwAAA=",
    "CreatedDateTime": "2016-04-22T15:19:18.9526004-07:00",
    "LastModifiedDateTime": "2016-04-22T15:19:19.015101-07:00",
    "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIW9XXA==",
    "Categories": [
    ],
    "AssignedTo": null,
    "Body": {
        "ContentType": "Text",
        "Content": ""
    },
    "CompletedDateTime": null,
    "DueDateTime": {
        "DateTime": "2016-05-04T21:00:00.0000000",
        "TimeZone": "Pacific Standard Time"
    },
    "HasAttachments":false,
    "Importance": "Normal",
    "IsReminderOn": false,
    "Owner": "Administrator",
    "ParentFolderId": "AQMkADA1MTEgAAAA==",
    "Recurrence": null,
    "ReminderDateTime": null,
    "Sensitivity": "Normal",
    "StartDateTime": {
        "DateTime": "2016-05-02T21:00:00.0000000",
        "TimeZone": "Pacific Standard Time"
    },
    "Status": "NotStarted",
    "Subject": "Shop for children's weekend"
}

Obtener tareas

Obtener todas las tareas

Ámbito mínimo necesario

Obtener múltiples tareas.

Puede obtener todas las tareas en el buzón del usuario que ha iniciado la sesión.

GET https://outlook.office.com/api/v2.0/me/tasks

O puede obtener todas las tareas en una carpeta específica:

GET https://outlook.office.com/api/v2.0/me/taskfolders('{folder_id}')/tasks

Si hay más de un grupo de tareas y desea obtener todas las tareas en un grupo de tareas específico, primero obtenga todas las carpetas de tareas en ese grupo de tareas, y luego obtenga las tareas en cada una de estas carpetas de tareas.

Respuesta

Código de estado de éxito: 200 Aceptar

Cuerpo de respuesta: una colección de tareas

De forma predeterminada, las propiedades relacionadas con la fecha en la respuesta se expresan en UTC. Descubra cómo especificar una cierta zona horaria para todas las propiedades relacionadas con la fecha en la respuesta.

Solicitud de ejemplo

El siguiente ejemplo obtiene todas las tareas en el buzón del usuario.

GET https://outlook.office.com/api/v2.0/me/tasks

Respuesta de ejemplo

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Tasks",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/Tasks('AAMkADA1MTrfAAA=')",
      "@odata.etag": "W/\"1/KC9Vmu40G3DwB6Lgs7MAAAIOJMxw==\"",
      "Id": "AAMkADA1MTrfAAA=",
      "CreatedDateTime": "2016-04-22T05:44:01.2012012Z",
      "LastModifiedDateTime": "2016-04-22T05:44:02.9980882Z",
      "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMxw==",
      "Categories": [ ],
      "AssignedTo": null,
      "Body": {
        "ContentType": "Text",
        "Content": ""
      },
      "CompletedDateTime": null,
      "DueDateTime": {
        "DateTime": "2016-04-25T07:00:00.0000000",
        "TimeZone": "UTC"
      },
      "HasAttachments":false,
      "Importance": "Normal",
      "IsReminderOn": false,
      "Owner": "Administrator",
      "ParentFolderId": "AQMkADA1MTBEgAAAA==",
      "Recurrence": null,
      "ReminderDateTime": null,
      "Sensitivity": "Normal",
      "StartDateTime": {
        "DateTime": "2016-04-23T07:00:00.0000000",
        "TimeZone": "UTC"
      },
      "Status": "NotStarted",
      "Subject": "Shop for dinner"
    },
    {
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('86b6ceaf-57f7-4278-97c4-4da0a97f6cdb@70559e59-b378-49ea-8e53-07a3a3d27f5b')/Tasks('AAMkADA1MTrgAAA=')",
      "@odata.etag": "W/\"1/KC9Vmu40G3DwB6Lgs7MAAAIOJMyQ==\"",
      "Id": "AAMkADA1MTrgAAA=",
      "CreatedDateTime": "2016-04-22T06:03:35.9279794Z",
      "LastModifiedDateTime": "2016-04-22T06:03:35.9436052Z",
      "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMyQ==",
      "Categories": [ ],
      "AssignedTo": null,
      "Body": {
        "ContentType": "Text",
        "Content": ""
      },
      "CompletedDateTime": null,
      "DueDateTime": {
        "DateTime": "2016-04-27T04:00:00.0000000",
        "TimeZone": "UTC"
      },
      "HasAttachments":false,
      "Importance": "Normal",
      "IsReminderOn": false,
      "Owner": "Administrator",
      "ParentFolderId": "AQMkADA1MTBEgAAAA==",
      "Recurrence": null,
      "ReminderDateTime": null,
      "Sensitivity": "Normal",
      "StartDateTime": {
        "DateTime": "2016-04-26T04:00:00.0000000",
        "TimeZone": "UTC"
      },
      "Status": "NotStarted",
      "Subject": "Shop for dinner"
    }
  ]
}

Obtener una tarea

Ámbito mínimo necesario

Obtener una tarea específica.

GET https://outlook.office.com/api/v2.0/me/tasks('{task_id}')

Respuesta

Código de estado de éxito: 200 Aceptar

Cuerpo de respuesta: la tarea solicitada.

De forma predeterminada, las propiedades relacionadas con la fecha en la respuesta se expresan en UTC. Descubra cómo especificar una cierta zona horaria para todas las propiedades relacionadas con la fecha en la respuesta.

Solicitud de ejemplo

GET https://outlook.office.com/api/v2.0/me/tasks('AAMkADA1MTrgAAA=') 

Respuesta de ejemplo

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Tasks/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADA1MTrgAAA=')",
  "@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIa/+kw==\"",
  "Id": "AAMkADA1MTrgAAA=",
  "CreatedDateTime": "2016-04-22T06:03:35.9279794Z",
  "LastModifiedDateTime": "2016-04-22T06:03:35.9436052Z",
  "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIOJMyQ==",
  "Categories": [ ],
  "AssignedTo": null,
  "Body": {
    "ContentType": "Text",
    "Content": ""
  },
  "CompletedDateTime": null,
  "DueDateTime": {
    "DateTime": "2016-04-27T04:00:00.0000000",
    "TimeZone": "UTC"
  },
  "HasAttachments":false,
  "Importance": "Normal",
  "IsReminderOn": false,
  "Owner": "Administrator",
  "ParentFolderId": "AQMkADA1MTBEgAAAA==",
  "Recurrence": null,
  "ReminderDateTime": null,
  "Sensitivity": "Normal",
  "StartDateTime": {
    "DateTime": "2016-04-26T04:00:00.0000000",
    "TimeZone": "UTC"
  },
  "Status": "NotStarted",
  "Subject": "Shop for dinner"
}

Actualizar tareas

Ámbito mínimo necesario

Cambia las propiedades modificables de una tarea.

PATCH https://outlook.office.com/api/v2.0/me/tasks/{task_id}

En el cuerpo de la solicitud, proporcione una representación JSON de las propiedades modificables para actualizar en la tarea.

Más información sobre la configuración StartDateTime y DueDateTime.

La propiedad CompletedDateTime puede ser establecida por la acción Complete, o explícitamente por una operación PATCH. Si usa PATCH para establecer CompletedDateTime, asegúrese de configurar Estado en Completed también.

De forma predeterminada, las propiedades relacionadas con la fecha en la respuesta se expresan en UTC. Descubra cómo especificar una cierta zona horaria para todas las propiedades relacionadas con la fecha en la respuesta.

Respuesta

Código de estado de éxito: 200 Aceptar

Cuerpo de la respuesta: la tarea actualizada.

Solicitud de ejemplo

El siguiente ejemplo modifica DueDateTime y usa el encabezado Prefer: outlook.timezone para especificar las propiedades relacionadas con la fecha que se expresarán en hora estándar del este (EST) en la respuesta.

PATCH https://outlook.office.com/api/v2.0/me/tasks('AAMkADA1MTHgwAAA=')

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

{
  "DueDateTime":  {
      "DateTime": "2016-05-06T16:00:00",
      "TimeZone": "Eastern Standard Time"
  }
}

Respuesta de ejemplo

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Tasks/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADA1MTHgwAAA=')",
  "@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIa/+lg==\"",
  "Id": "AAMkADA1MTHgwAAA=",
    "CreatedDateTime": "2016-04-22T18:19:18.9526004-04:00",
    "LastModifiedDateTime": "2016-04-22T18:38:20.5541528-04:00",
    "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIW9XXg==",
    "Categories": [
    ],
    "AssignedTo": null,
    "Body": {
        "ContentType": "Text",
        "Content": ""
    },
    "CompletedDateTime": null,
    "DueDateTime": {
        "DateTime": "2016-05-06T00:00:00.0000000",
        "TimeZone": "Eastern Standard Time"
    },
    "HasAttachments":false,
    "Importance": "Normal",
    "IsReminderOn": false,
    "Owner": "Administrator",
    "ParentFolderId": "AQMkADA1MTIBEgAAAA==",
    "Recurrence": null,
    "ReminderDateTime": null,
    "Sensitivity": "Normal",
    "StartDateTime": {
        "DateTime": "2016-05-03T00:00:00.0000000",
        "TimeZone": "Eastern Standard Time"
    },
    "Status": "NotStarted",
    "Subject": "Shop for children's weekend"
}

Eliminar tareas

Ámbito mínimo necesario

Elimina la tarea especificada en el buzón del usuario.

DELETE https://outlook.office.com/api/v2.0/me/tasks('{task_id}')

Respuesta

Código de estado de éxito: 204 Sin contenido

Cuerpo de la respuesta: ninguno

Solicitud de ejemplo

DELETE https://outlook.office365.com/api/v2.0/me/tasks('AAMkADIyAAAhrb_QAAA=')

Respuesta de ejemplo

Status code: 204 No Content

Completar tareas

Ámbito mínimo necesario

Completa una tarea y configura la propiedad CompletedDateTime a la fecha actual, y la propiedad Estado a Completed.

POST https://outlook.office.com/api/v2.0/me/tasks('{task_id}')/complete

Nota

CompletedDateTime representa la fecha en que la tarea finaliza. La porción de tiempo de CompletedDateTime está configurada a la medianoche UTC de forma predeterminada.

Una aplicación puede especificar una zona horaria personalizada en un encabezado de solicitud Prefer. El siguiente es un ejemplo para establecer CompletedDateTime a la zona horaria de la hora estándar del Pacífico (PST):

Prefer: outlook.timezone="Pacific Standard Time"

Este encabezado de solicitud establece todas las propiedades relacionadas con la fecha en la respuesta a la zona horaria especificada.

Respuesta

Código de estado de éxito: 200 Aceptar

Cuerpo de la respuesta: la tarea completada en una colección de tareas. Si está completando una tarea en una serie recurrente, la colección de tareas contendrá la tarea completada en la serie y la siguiente tarea de la serie.

Solicitud de ejemplo

El siguiente ejemplo marca la tarea especificada como completa. Debido a que especifica el horario estándar del Pacífico (PST) en el encabezado Prefer: outlook.timezone, CompletedDateTime y otras propiedades relacionadas con la fecha en la respuesta se expresan en PST.

POST https://outlook.office.com/api/v2.0/me/tasks('AAMkADA1MT15rfAAA=')/complete

Prefer: outlook.timezone="Pacific Standard Time"

Respuesta de ejemplo

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/Tasks",
  "value": [
    {
      "@odata.id": "https://outlook.office365.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/Tasks('AAMkADA1MT15rfAAA=')",
      "@odata.etag": "W/\"hmM7Eb/jgEec8l3+gkJEawAAIa/+lw==\"",
      "Id": "AAMkADA1MT15rfAAA=",
      "CreatedDateTime": "2016-04-21T22:44:01.2012012-07:00",
      "LastModifiedDateTime": "2016-04-22T19:28:38.5300447-07:00",
      "ChangeKey": "1/KC9Vmu40G3DwB6Lgs7MAAAIW9XYQ==",
      "Categories": [
      ],
      "AssignedTo": null,
      "Body": {
          "ContentType": "Text",
          "Content": ""
      },
      "CompletedDateTime": {
          "DateTime": "2016-04-22T00:00:00.0000000",
          "TimeZone": "Pacific Standard Time"
      },
      "DueDateTime": {
          "DateTime": "2016-04-25T00:00:00.0000000",
          "TimeZone": "Pacific Standard Time"
      },
      "HasAttachments":false,
      "Importance": "Normal",
      "IsReminderOn": false,
      "Owner": "Administrator",
      "ParentFolderId": "AQMkADA1MTIBEgAAAA==",
      "Recurrence": null,
      "ReminderDateTime": null,
      "Sensitivity": "Normal",
      "StartDateTime": {
          "DateTime": "2016-04-21T00:00:00.0000000",
          "TimeZone": "Pacific Standard Time"
      },
      "Status": "Completed",
      "Subject": "Shop for dinner"
    }
  ]
}

Sincronizar tareas o carpetas de tareas

Ámbito mínimo necesario

Puede sincronizar tareas en una carpeta de tareas o carpetas de tareas en el buzón de un usuario. La sincronización de tareas es una operación por carpeta, por ejemplo, puede sincronizar todas las tareas en su carpeta de tareas predeterminada Tasks. Para sincronizar los mensajes en una jerarquía de carpetas, necesita sincronizar cada carpeta individualmente. Los procesos para sincronizar tareas o carpetas de tareas son similares, por lo general requieren una ronda de dos o más solicitudes de sincronización, cada una de las cuales es una llamada GET.

Use el método GET de forma similar a como obtiene tareas en una carpeta, u obtiene carpetas de tareas en un buzón, excepto por que incluirá ciertos encabezados de solicitud, y un deltaToken o skipToken cuando sea apropiado.

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 previa. 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 un skipToken en datos de segunda respuesta de muestra para tareas si está sincronizando tareas, o datos de segunda respuesta de muestra para carpetas de tareas, si está sincronizando carpetas de tareas).
  • Puede especificar el encabezado Prefer: odata.maxpagesize={x} para indicar el número máximo de tareas (o carpetas de tareas, dependiendo de cuál se está sincronizando) que devuelve cada solicitud de sincronización.

A continuación se muestra una ronda típica de sincronización:

  1. 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).

  2. Si la primera respuesta devuelve el encabezado Preference-Applied: odata.track-changes, puede continuar con la sincronización del recurso.

    • Realice una segunda solicitud GET. Especifique el encabezado Prefer: odata.track-changes y el deltaToken devuelto desde el primer GET para determinar si hay instancias adicionales del recurso a sincronizar. La segunda solicitud devolverá instancias adicionales y un skipToken si hay más instancias disponibles, o un deltaToken si la última instancia se ha sincronizado, en ese caso puede detenerse.

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

Sincronizar tareas en una carpeta de tareas

Solicitud inicial:

GET https://outlook.office.com/api/v2.0/me/TaskFolders('{folder_id}')/Tasks

Segunda solicitud, o primera solicitud de una ronda posterior:

GET https://outlook.office.com/api/v2.0/me/TaskFolders('{folder_id}')/Tasks/?$deltatoken={delta_token}

Tercera solicitud o posterior en la misma ronda; deténgase cuando reciba una respuesta que contenga un encabezado @odata.deltaLink con un deltaToken de nuevo:

GET https://outlook.office.com/api/v2.0/me/TaskFolders('{folder_id}')/Tasks/?$skiptoken={skip_token}

Sincronizar carpetas de tareas en un buzón

Solicitud inicial:

GET https://outlook.office.com/api/v2.0/me/TaskFolders

Segunda solicitud, o primera solicitud de una ronda posterior:

GET https://outlook.office.com/api/v2.0/me/TaskFolders/?$deltatoken={delta_token}

Tercera solicitud o posterior en la misma ronda; deténgase cuando reciba una respuesta que contenga un encabezado @odata.deltaLink con un deltaToken de nuevo:

GET https://outlook.office.com/api/v2.0/me/TaskFolders/?$skiptoken={skip_token}

Parámetros

Parámetro Tipo Descripción
Parámetros del encabezado
Preferido odata.track-changes Indica que la solicitud es una solicitud de sincronización. Necesario para las primeras 2 solicitudes GET de una ronda.
Preferido odata.maxpagesize Establece el número de mensajes que se devolverán en cada respuesta. Opcional.
Parámetros de URL
deltaToken cadena La cadena deltaToken devuelta como parte del valor de @odata.deltaLink en la respuesta de sincronización anterior.
skipToken cadena La cadena skipToken devuelta como parte del valor de @data.nextLink en la respuesta de sincronización anterior.

Nota

  • Cuando se especifica Prefer: odata.track-changes en la solicitud inicial, si la respuesta admite la sincronización, la respuesta incluirá Preference-applied: odata.track-changes en el encabezado.
  • Si intenta sincronizar un recurso que no se admite, o si esta no es la solicitud de sincronización inicial, no verá el encabezado Preference-applied en la respuesta.
  • Para obtener un mejor tiempo de respuesta, use el parámetro de consulta $select para obtener solo las propiedades útiles para su escenario.
  • No puede usar los parámetros de consulta $filter, $orderby, $search y $top.

Cuerpo de la respuesta

  • Si sincroniza tareas: los objetos tarea solicitados en una colección.

  • Si sincroniza carpetas de tareas: los objetos TaskFolder solicitados en una colección.

La cantidad de objetos depende del valor establecido en el encabezado de solicitud Prefer: odata.maxpagesize.

Ejemplo

A continuación, se muestran dos conjuntos de ejemplos:

Cada ejemplo muestra las solicitudes de sincronización inicial y segunda.

  • Cada solicitud especifica Prefer: odata.maxpagesize=1 para devolver solo un objeto (tarea o carpeta de tareas, respectivamente) cada vez.
  • La respuesta inicial devuelve un objeto sincronizado, un deltaLink y deltaToken.
  • La segunda solicitud utiliza ese deltatoken. La segunda respuesta devuelve un objeto sincronizado, un nextLink y skipToken.

Itere a través del proceso de sincronización y use en la próxima llamada GET el skipToken devuelto desde la solicitud de sincronización anterior hasta que obtenga una respuesta de sincronización que contenga un deltaLink y deltaToken como a continuación:

"@odata.deltaLink": “https://outlook.office.com/api/v2.0/me/TaskFolders('AQMkAGMw80AAAIBEgAAAA==')/Tasks/?%24deltaToken=294a8f04cc0345c5ae093d484629e186”

Cuando esto sucede, esta ronda de sincronización está completa. Guarde el deltaToken para la próxima ronda de sincronización.

Ejemplo de solicitud inicial (tareas de sincronización)

    GET https://outlook.office.com/api/v2.0/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks HTTP/1.1
    Prefer: odata.maxpagesize=1
  Prefer: odata.track-changes

Ejemplo de datos de respuesta inicial (tareas de sincronización)

HTTP/1.1 200 OK
Preference-Applied: odata.track-changes

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#me/TaskFolders('AQMkAGMwAAAIBEgAAAA%3D%3D')/Tasks",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('47ec4680-f443-4f9c-a3e5-f7660f0aceae@b4ffe6c0-e717-4104-acd1-e9dfe38ff5f9')/Tasks('AAMkAGMwQsKVevNAAAG1VNmAAA=')",
      "@odata.etag": "W/\"3JfzyLwJe0mPNcULClXrzQAABtYBDw==\"",
      "Id": "AAMkAGMwQsKVevNAAAG1VNmAAA=",
      "CreatedDateTime": "2016-02-29T20:51:25.2226052Z",
      "LastModifiedDateTime": "2016-02-29T20:51:25.2538576Z",
      "ChangeKey": "3JfzyLwJe0mPNcULClXrzQAABtYBDw==",
      "Categories": [ ],
      "AssignedTo": null,
      "Body": {
        "ContentType": "Text",
        "Content": ""
      },
      "CompletedDateTime": null,
      "DueDateTime": null,
      "HasAttachments":false,
      "Importance": "Normal",
      "IsReminderOn": false,
      "Owner": "Administrator",
      "ParentFolderId": "AQMkAGMwAAAIBEgAAAA==",
      "Recurrence": null,
      "ReminderDateTime": null,
      "Sensitivity": "Normal",
      "StartDateTime": null,
      "Status": "NotStarted",
      "Subject": "another task"
    }
  ],
  "@odata.deltaLink": "https://outlook.office.com/api/v2.0/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks/?%24deltatoken=175e2e04482e431ea96e89145c212f8c"
}

Ejemplo de segunda solicitud (tareas de sincronización)

    GET https://outlook.office.com/api/v2.0/me/TaskFolders('AQMkAGMwAAAIBEgAAAA==')/Tasks/?%24deltatoken=175e2e04482e431ea96e89145c212f8c HTTP/1.1
    Prefer: odata.maxpagesize=1
  Prefer: odata.track-changes

Ejemplo de datos de segunda respuesta (tareas de sincronización)

HTTP/1.1 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#me/TaskFolders('AQMkAGMwAAAIBEgAAAA%3D%3D')/Tasks/$delta",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('47ec4680-f443-4f9c-a3e5-f7660f0aceae@b4ffe6c0-e717-4104-acd1-e9dfe38ff5f9')/Tasks('AAMkAGMwQsKVevNAAAG1VNlAAA=')",
      "@odata.etag": "W/\"3JfzyLwJe0mPNcULClXrzQAABtYBDQ==\"",
      "Id": "AAMkAGMwQsKVevNAAAG1VNlAAA=",
      "CreatedDateTime": "2016-02-29T20:51:02.5955351Z",
      "LastModifiedDateTime": "2016-02-29T20:51:03.9703679Z",
      "ChangeKey": "3JfzyLwJe0mPNcULClXrzQAABtYBDQ==",
      "Categories": [ ],
      "AssignedTo": null,
      "Body": {
        "ContentType": "Text",
        "Content": ""
      },
      "CompletedDateTime": null,
      "DueDateTimeTime": null,
      "HasAttachments":false,
      "Importance": "Normal",
      "IsReminderOn": false,
      "Owner": "Administrator",
      "ParentFolderId": "AQMkAGMwAAAIBEgAAAA==",
      "Recurrence": null,
      "ReminderDateTime": null,
      "Sensitivity": "Normal",
      "StartDateTime": null,
      "Status": "NotStarted",
      "Subject": "another task"
    }
  ],
  "@odata.nextLink": "https://outlook.office.com/api/v2.0/me/TaskFolders('AQMkAGMw80AAAIBEgAAAA==')/Tasks/?%24skipToken=0fbce2031e844a2f9d13d8bee5ebe2c6"
}

Continúe sincronizando tareas y use en la próxima llamada GET el skiptoken devuelto en @odata.nextLink de la respuesta anterior, hasta que la respuesta final contenga un @odata.deltaLink y un deltaToken. Guarde el deltaToken para la próxima ronda de sincronización.

Ejemplo de solicitud inicial (sincronizar carpetas de tareas)

    GET https://outlook.office.com/api/v2.0/me/TaskFolders HTTP/1.1
    Prefer: odata.maxpagesize=1
    Prefer: odata.track-changes

Ejemplo de datos de respuesta inicial (sincronizar carpetas de tareas)

HTTP/1.1 200 OK
Preference-Applied: odata.track-changes

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#me/TaskFolders",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/Users('5bcd7334-a6c5-4f95-a370-319e077dfe10@e288a0d0-ab74-431b-9699-a3721aabb08f')/TaskFolders('AAMkAGJiAAAAAAESAAA=')",
            "Id": "AAMkAGJiAAAAAAESAAA=",
            "ChangeKey": "PG2a661l00Cy9qH3YxmDfwAAAAAAPA==",
            "Name": "Tasks",
            "IsDefaultFolder":true,
            "ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
        }
    ],
    "@odata.deltaLink": "https://outlook.office.com/api/v2.0/me/TaskFolders/?%24deltatoken=OyZKBDxtmuutZdNAsvah92MZg38AAAAAZwkBAAAA"
}

Ejemplo de segunda solicitud (sincronizar carpetas de tareas)

    GET https://outlook.office.com/api/v2.0/me/TaskFolders/?%24deltatoken=OyZKBDxtmuutZdNAsvah92MZg38AAAAAZwkBAAAA HTTP/1.1
    Prefer: odata.maxpagesize=1
    Prefer: odata.track-changes

Ejemplo de datos de segunda respuesta (sincronizar carpetas de tareas)

HTTP/1.1 200 OK

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#me/TaskFolders/$delta",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/Users('5bcd7334-a6c5-4f95-a370-319e077dfe10@e288a0d0-ab74-431b-9699-a3721aabb08f')/TaskFolders('AAMkAGI5AAAunDbWAAA=')",
            "Id": "AAMkAGI5AAAunDbWAAA=",
            "ChangeKey": "PmebZ1wYAUaTmrKkvU9LIQAALqEkaw==",
            "Name": "Bingo",
            "IsDefaultFolder":false,
            "ParentGroupKey": "db0823f2-93bd-4db6-8038-98bbc5f39a45"
        }
    ],
    "@odata.nextLink": "https://outlook.office.com/api/v2.0/me/TaskFolders/?%24skipToken=x_zCAz5nm2dcGAFGk5qypL1PSyEAAC6cRncCAAAA"
}

Continúe sincronizando tareas y use en la próxima llamada GET el skiptoken devuelto en @odata.nextLink de la respuesta anterior, hasta que la respuesta final contenga un @odata.deltaLink y un deltaToken. En este ejemplo, la tercera solicitud devuelve un deltaToken y la sincronización está completa para esta ronda.

Ejemplo de tercera solicitud (sincronizar carpetas de tareas)

    GET https://outlook.office.com/api/v2.0/me/TaskFolders/?%24skipToken=x_zCAz5nm2dcGAFGk5qypL1PSyEAAC6cRncCAAAA HTTP/1.1
    Prefer: odata.maxpagesize=1

Ejemplo de datos de tercera respuesta (sincronizar carpetas de tareas)

HTTP/1.1 200 OK

{
    "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#me/TaskFolders/$delta",
    "value": [
        {
            "@odata.id": "https://outlook.office.com/api/v2.0/Users('5bcd7334-a6c5-4f95-a370-319e077dfe10@e288a0d0-ab74-431b-9699-a3721aabb08f')/TaskFolders('AAMkAGI5AAAunDbVAAA=')",
            "Id": "AAMkAGI5AAAunDbVAAA=",
            "ChangeKey": "PmebZ1wYAUaTmrKkvU9LIQAALqEkZA==",
            "Name":"Volunteer",
            "IsDefaultFolder":false,
            "ParentGroupKey": "db0823f2-93bd-4db6-8038-98bbc5f39a45"
        }
    ],
    "@odata.deltaLink":"https://outlook.office.com/api/v2.0/me/taskfolders/?%24deltaToken=x_zCBD5nm2dcGAFGk5qypL1PSyEAAC6cRncEAAAA"
}

Obtener datos adjuntos

Obtener una colección de datos adjuntos

Ámbito mínimo necesario

Obtener los archivos adjuntos de una tarea en particular.

GET https://outlook.office.com/api/v2.0/me/tasks('{task_id}')/attachments

Tipo de respuesta

Una recopilación de datos adjuntos que puede ser del tipo FileAttachment o ItemAttachment.

Solicitud de ejemplo

El siguiente ejemplo devuelve todos los datos adjuntos de la tarea especificada, que incluyen un archivo y un elemento de evento.

GET https://outlook.office.com/api/v2.0/me/tasks('AAMkADNkN3qGAAA=')/attachments

Respuesta de ejemplo

Código de estado: 200

{
    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments",
    "value":[
        {
            "@odata.type":"#Microsoft.OutlookServices.FileAttachment",
            "@odata.id":"https://outlook.office.com/api/v2.0/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNRT6JOBs=')",
            "Id":"AAMkADNkNRT6JOBs=",
            "LastModifiedDateTime":"2016-11-22T02:24:21Z",
            "Name":"Holiday notice",
            "ContentType":"application/octet-stream",
            "Size":244,
            "IsInline":false,
            "ContentId":null,
            "ContentLocation":null,
            "ContentBytes":"bWFjIGFuZCBjaGVlc2U="
        },
        {
            "@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
            "@odata.id":"https://outlook.office.com/api/v2.0/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNJVnQIe9r0=')",
            "Id":"AAMkADNkNJVnQIe9r0=",
            "LastModifiedDateTime":"2016-12-01T22:27:13Z",
            "Name":"Holiday event",
            "ContentType":null,
            "Size":2473,
            "IsInline":false
        }    
    ]
}

Obtener datos adjuntos

Ámbito mínimo necesario

Obtiene datos adjuntos en una tarea en particular.

GET https://outlook.office.com/api/v2.0/me/tasks('{task_id}')/attachments('{attachment_id}')

Tipo de respuesta

El archivo adjunto o elemento adjunto solicitado.

Ejemplo de solicitud (archivo adjunto)

El siguiente ejemplo obtiene un recurso adjunto específico en una tarea, el cual es un archivo adjunto.

GET https://outlook.office.com/api/v2.0/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNRT6JOBs=')

Respuesta de ejemplo

Código de estado: 200

{
    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.FileAttachment",
    "@odata.id":"https://outlook.office.com/api/v2.0/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNRT6JOBs=')",
    "Id":"AAMkADNkNRT6JOBs=",
    "LastModifiedDateTime":"2016-11-22T02:24:21Z",
    "Name":"Holiday notice",
    "ContentType":"application/octet-stream",
    "Size":244,
    "IsInline":false,
    "ContentId":null,
    "ContentLocation":null,
    "ContentBytes":"bWFjIGFuZCBjaGVlc2U="
}

Ejemplo de solicitud (elemento adjunto)

El siguiente ejemplo obtiene un recurso adjunto específico en una tarea, que es un elemento de evento.

GET https://outlook.office.com/api/v2.0/me/tasks('AAMkADNkNS3qGAAA=')/attachments('AAMkADNkNJVnQIe9r0=')

Respuesta de ejemplo

Código de estado: 200

{
    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/Tasks('AAMkADNkNS3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
    "@odata.id":"https://outlook.office.com/api/v2.0/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkNS3qGAAA=')/Attachments('AAMkADNkNJVnQIe9r0=')",
    "Id":"AAMkADNkNJVnQIe9r0=",
    "LastModifiedDateTime":"2016-12-01T22:27:13Z",
    "Name":"Holiday event",
    "ContentType":null,
    "Size":2473,
    "IsInline":false
}

Agregar datos adjuntos

Puede agregar un archivo, elemento (mensaje, evento o contacto) o un vínculo a un archivo como un dato adjunto a una tarea.

Agregar un archivo adjunto

Ámbito mínimo necesario

Agrega un archivo como un dato adjunto a una tarea.

POST https://outlook.office.com/api/v2.0/me/tasks('{task_id}')/attachments
Parámetro de cuerpo obligatorio Tipo Descripción
@odata.type cadena #Microsoft.OutlookServices.FileAttachment
Nombre cadena El nombre de los datos adjuntos.
ContentBytes binario El contenido del archivo para adjuntar, en codificación base64.

Tipo de respuesta

El nuevo archivo adjunto.

Solicitud de ejemplo

POST https://outlook.office.com/api/v2.0/me/tasks('AAMkADNkN3qGAAA=')/attachments
Content-Type: application/json

{
    "@odata.type": "#Microsoft.OutlookServices.FileAttachment"", 
    "Name": "Holiday notice", 
    "ContentBytes": "bWFjIGFuZCBjaGVlc2U="
}

Respuesta de ejemplo

Código de estado: 201 Creado

{
    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.FileAttachment",
    "@odata.id":"https://outlook.office.com/api/v2.0/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNRT6JOBs=')",
    "Id":"AAMkADNkNRT6JOBs=",
    "LastModifiedDateTime":"2016-11-22T02:24:21Z",
    "Name":"Holiday notice",
    "ContentType":"application/octet-stream",
    "Size":244,
    "IsInline":false,
    "ContentId":null,
    "ContentLocation":null,
    "ContentBytes":"bWFjIGFuZCBjaGVlc2U="
}

Agregar un elemento adjunto

Ámbito mínimo necesario

Agrega un elemento (mensaje, evento o contacto) como un dato adjunto a una tarea.

POST https://outlook.office.com/api/v2.0/me/tasks('{task_id}')/attachments
Parámetro de cuerpo obligatorio Tipo Descripción
@odata.type cadena # Microsoft.OutlookServices.ItemAttachment
Name cadena El nombre de los datos adjuntos.
Item Una entidad Mensaje, Evento o Contacto. El elemento para adjuntar.

Tipo de respuesta

El nuevo elemento adjunto.

Solicitud de ejemplo

POST https://outlook.office.com/api/v2.0/me/tasks('AAMkADNkN3qGAAA=')/attachments
Content-Type: application/json

{
    "@odata.type": "#Microsoft.OutlookServices.ItemAttachment", 
    "Name": "Holiday event", 
    "Item": {
        "@odata.type": "Microsoft.OutlookServices.Event",
        "Subject": "Discuss gifts for children",
        "Body": {
            "ContentType": "HTML",
            "Content": "Let's look for funding!"
         },
         "Start": {
             "DateTime": "2016-12-02T18:00:00",
             "TimeZone": "Pacific Standard Time"
          },
          "End": {
             "DateTime": "2016-12-02T19:00:00",
             "TimeZone": "Pacific Standard Time"
           }
    }
}

Respuesta de ejemplo

Código de estado: 201 Creado

{
    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.ItemAttachment",
    "@odata.id":"https://outlook.office.com/api/v2.0/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN23qGAAA=')/Attachments('AAMkADNkN2Jp5JVnQIe9r0=')",
    "Id":"AAMkADNkNJp5JVnQIe9r0=",
    "LastModifiedDateTime":"2016-12-01T22:27:13Z",
    "Name":"Holiday event",
    "ContentType":null,
    "Size":2473,
    "IsInline":false
}

Agregar una referencia adjunta

Ámbito mínimo necesario

Agrega un vínculo a un archivo como una referencia adjunta a una tarea.

POST https://outlook.office.com/api/v2.0/me/tasks('{task_id}')/attachments
Parámetro de cuerpo obligatorio Tipo Descripción
@odata.type Cadena #Microsoft.OutlookServices.ReferenceAttachment
Name Cadena Nombre para mostrar de los datos adjuntos. Obligatorio.
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. Obligatorio.

Especifique los parámetros Name y SourceUrl y cualquier parámetro reference attachment editable en el cuerpo de la solicitud.

Tipo de respuesta

La referencia adjunta.

Solicitud de ejemplo

El siguiente ejemplo agrega una referencia adjunta a una tarea existente. Los datos adjuntos son un vínculo a un archivo en OneDrive para la Empresa.

POST https://outlook.office.com/api/v2.0/me/tasks('AAMkADNkN3qGAAA=')/attachments
Content-Type: application/json

{
    "@odata.type": "#Microsoft.OutlookServices.ReferenceAttachment", 
    "Name": "Hydrangea picture", 
    "SourceUrl": "https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments%2FHydrangeas%2Ejpg&parent=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments", 
    "ProviderType": "oneDriveBusiness", 
    "Permission": "Edit", 
    "IsFolder": "False" 
}

Respuesta de ejemplo

Código de estado: 201 Creado

{
    "@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/Tasks('AAMkADNkN3qGAAA%3D')/Attachments/$entity",
    "@odata.type":"#Microsoft.OutlookServices.ReferenceAttachment",
    "@odata.id":"https://outlook.office.com/api/v2.0/Users('fdcbcf34-2505-4d07-be5b-0a55b699d157@41a5b830-45ac-4f1b-9bfc-baafa3b7db2e')/Tasks('AAMkADNkN3qGAAA=')/Attachments('AAMkADNkNQG1Lnn5-o=')",
    "Id":"AAMkADNkNQG1Lnn5-o=",
    "LastModifiedDateTime":"2016-11-22T02:32:44Z",
    "Name":"Hydrangea picture",
    "ContentType":null,
    "Size":850,
    "IsInline":true,
    "SourceUrl":"https://contoso-my.sharepoint.com/personal/admin_contoso_onmicrosoft_com/_layouts/15/onedrive.aspx?id=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments%2FHydrangeas%2Ejpg&parent=%2Fpersonal%2Fadmin%5Fcontoso%5Fonmicrosoft%5Fcom%2FDocuments",
    "ProviderType":"OneDriveBusiness",
    "ThumbnailUrl":null,
    "PreviewUrl":null,
    "Permission":"Edit",
    "IsFolder":false
}

Eliminar archivos adjuntos

Eliminar un dato adjunto de una tarea

Eliminar un dato adjunto de una tarea

Ámbito mínimo necesario

Elimine los datos adjuntos especificados de una tarea. Los datos adjuntos pueden ser un archivo adjunto o elemento adjunto.

DELETE https://outlook.office.com/api/v2.0/me/tasks('{task_id}')/attachments('{attachment_id}')

Solicitud de ejemplo

DELETE https:/outlook.office.com/api/v2.0/me/tasks('AAMkADNkN3qGAAA=')/attachments('AAMkADNkNQG1Lnn5-o=')

Respuesta de ejemplo

Status code: 204

Crear carpetas de tareas

Ámbito mínimo necesario

Creae una carpeta de tareas.

Puede crear una carpeta de tareas en el grupo de tareas predeterminado (My Tasks) del buzón del usuario:

POST https://outlook.office.com/api/v2.0/me/taskfolders

O puede crear una carpeta de tareas bajo un grupo de tareas especificado:

POST https://outlook.office.com/api/v2.0/me/taskgroups('{group_id}')/taskfolders

En el cuerpo de la solicitud, proporcione una representación JSON de la TaskFolder que quiere crear.

Respuesta

Código de estado de éxito: 201 Creado

Cuerpo de respuesta: la TaskFolder creado.

Solicitud de ejemplo

El siguiente ejemplo crea una carpeta de tareas llamada Volunteer en el grupo de tareas predeterminado (My Tasks) del buzón del usuario.

POST https://outlook.office.com/api/v2.0/me/taskfolders 
Content-Type: application/json

{
  "Name": "Volunteer"
}

Respuesta de ejemplo

Status code: 201

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskFolders/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPWAAA=')",
  "Id": "AAMkADIyAAAhrbPWAAA=",
  "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAGig==",
  "IsDefaultFolder": false,
  "Name": "Volunteer",
  "ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
}

Solicitud de ejemplo

El siguiente ejemplo crea una carpeta de tareas llamada Cooking en el grupo de tareas especificado.

POST https://outlook.office.com/api/v2.0/me/taskgroups('AAMkADIyAAAhrbe-AAA')/taskfolders 
Content-Type: application/json

{
  "Name": "Cooking"
}

Respuesta de ejemplo

Status code: 201

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskGroups('AAMkADIyAAAhrbe-AAA%3D')/TaskFolders/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPXAAA=')",
  "Id": "AAMkADIyAAAhrbPXAAA=",
  "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAOlA==",
  "IsDefaultFolder": false,
  "Name": "Cooking",
  "ParentGroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
}

Obtener carpetas de tareas

Ámbito mínimo necesario

Obtiene múltiples carpetas de tareas.

Puede obtener todas las carpetas de tareas en el buzón del usuario:

GET https://outlook.office.com/api/v2.0/me/taskfolders

O puede obtener carpetas de tareas en un grupo de tareas específico:

GET https://outlook.office365.com/api/v2.0/me/taskgroups('{group_id}')/taskfolders 

Respuesta

Código de estado de éxito: 200 Aceptar

Cuerpo de respuesta: una colección de carpetas de tareas.

Solicitud de ejemplo

El siguiente ejemplo obtiene todas las carpetas de tareas en el buzón del usuario.

GET https://outlook.office.com/api/v2.0/me/taskfolders

Respuesta de ejemplo

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskFolders",
  "value": [
    {
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAAABrJAAA=')",
      "Id": "AAMkADIyAAAAABrJAAA=",
      "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAAAAeAA==",
      "IsDefaultFolder": false,
      "Name": "Monthly tasks",
      "ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
    },
    {
      "@odata.id": "https://outlook.office.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAAAAESAAA=')",
      "Id": "AAMkADIyAAAAAAESAAA=",
      "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAAAAAPA==",
      "IsDefaultFolder": true,
      "Name": "Tasks",
      "ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
    }
  ]
}

El siguiente ejemplo obtiene todas las carpetas de tareas en el grupo de tareas especificado.

GET https://outlook.office365.com/api/v2.0/me/taskgroups('AAMkADIyAAAhrbe-AAA=')/taskfolders

Respuesta de ejemplo

Status code: 200 OK

{
  "@odata.context": "https://outlook.office365.com/api/v2.0/$metadata#Me/TaskGroups('AAMkADIyAAAhrbe-AAA%3D')/TaskFolders",
  "value": [
    {
      "@odata.id": "https://outlook.office365.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPXAAA=')",
      "Id": "AAMkADIyAAAhrbPXAAA=",
      "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAOlA==",
      "IsDefaultFolder": false,
      "Name": "Cooking",
      "ParentGroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
    }
  ]
}

Actualizar carpetas de tareas

Ámbito mínimo necesario

Actualiza las propiedades editables de una carpeta de tareas.

No puede cambiar el valor de la propiedad Name de la carpeta de tareas predeterminada, Tasks.

Un id. de carpeta de tareas es único en el buzón del usuario.

PATCH https://outlook.office.com/api/v2.0/me/taskfolders('{folder_id}')

En el cuerpo de la solicitud, proporcione una representación JSON de las propiedades editables para actualizar en el TaskFolder.

Respuesta

Código de estado de éxito: 200 Aceptar

Cuerpo de la respuesta: el TaskFolder actualizado.

Solicitud de ejemplo

El siguiente ejemplo cambia el nombre de la carpeta de tareas a Charity work.

PATCH https://outlook.office.com/api/v2.0/me/taskfolders('AAMkADIyAAAhrbPWAAA=')
Content-Type: application/json

{
  "Name": "Charity work"
}

Respuesta de ejemplo

Status code: 200 OK

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskFolders/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskFolders('AAMkADIyAAAhrbPWAAA=')",
  "Id": "AAMkADIyAAAhrbPWAAA=",
  "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAKfQ==",
  "IsDefaultFolder": false,
  "Name": "Charity work",
  "ParentGroupKey": "0006f0b7-0000-0000-c000-000000000046"
}

Eliminar carpetas de tareas

Ámbito mínimo necesario

Elimina la carpeta de tareas especificada.

Intentar eliminar la carpeta de tareas predeterminada Tasks devolvería HTTP 400 Solicitud incorrecta.

DELETE https://outlook.office.com/api/v2.0/me/taskfolders('{folder_id}')

Respuesta

Código de estado de éxito: 204 Sin contenido

Cuerpo de la respuesta: ninguno.

Solicitud de ejemplo

DELETE https://outlook.office365.com/api/v2.0/me/taskfolders('AAMkADIyAAAhrbPXAAA=')

Respuesta de ejemplo

Status code: 204

Crear grupos de tareas

Ámbito mínimo necesario

Crea un grupo de tareas en el buzón del usuario.

POST https://outlook.office.com/api/v2.0/me/taskgroups

En el cuerpo de la solicitud, proporcione una representación JSON del TaskGroup que quiere crear.

Respuesta

Código de estado de éxito: 201 Creado

Cuerpo de respuesta: el TaskGroup creado.

Solicitud de ejemplo

POST https://outlook.office.com/api/v2.0/me/taskgroups
Content-Type: application/json

{
  "Name": "Leisure tasks"
}

Respuesta de ejemplo

Status code: 201

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskGroups/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAAhrbe-AAA=')",
  "Id": "AAMkADIyAAAhrbe-AAA=",
  "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAGjg==".
  "IsDefaultGroup": false,
  "Name": "Leisure tasks",
  "GroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
}

Obtener grupos de tareas

Ámbito mínimo necesario

Obtenga todos los grupos de tareas en el buzón del usuario.

La respuesta siempre incluye el grupo de tareas predeterminado My Tasks y cualquier otro grupo de tareas que se haya creado en el buzón.

GET https://outlook.office.com/api/v2.0/me/taskgroups

Respuesta

Código de estado de éxito: 200 Aceptar

Cuerpo de respuesta: una colección de TaskGroup.

Solicitud de ejemplo

GET https://outlook.office.com/api/v2.0/me/taskgroups

Respuesta de ejemplo

Status code: 200

{
  "@odata.context": "https://outlook.office365.com/api/v2.0/$metadata#Me/TaskGroups",
  "value": [
    {
      "@odata.id": "https://outlook.office365.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAADJ5pYAAA=')",
      "Id": "AAMkADIyAAADJ5pYAAA=",
      "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAInHxLA==",
      "IsDefaultGroup": true,
      "Name": "My Tasks",
      "GroupKey": "0006f0b7-0000-0000-c000-000000000046"
    },
    {
      "@odata.id": "https://outlook.office365.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAAhrbe-AAA=')",
      "Id": "AAMkADIyAAAhrbe-AAA=",
      "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAInHxKw==",
      "IsDefaultGroup": false,
      "Name": "Leisure Tasks",
      "GroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
    }
  ]
}

Actualizar grupos de tareas

Ámbito mínimo necesario

Actualiza las propiedades editables de un grupo de tareas.

PATCH https://outlook.office.com/api/v2.0/me/taskgroups('{group_id}')

En el cuerpo de la solicitud, proporcione una representación JSON de las propiedades editables para actualizar en el TaskGroup, como la propiedad Name.

Respuesta

Código de estado de éxito: 200 Aceptar

Cuerpo de la respuesta: la tarea actualizada.

Solicitud de ejemplo

El siguiente ejemplo cambia el nombre de un grupo de tareas a "Tareas personales". Tenga en cuenta que no puede modificar el nombre del grupo de tareas predeterminado "Mis tareas".

PATCH https://outlook.office.com/api/v2.0/me/taskgroups('AAMkADIyAAAhrbe-AAA=')
Content-Type: application/json

{
  "Name": "Personal Tasks"
}

Respuesta de ejemplo

Status code: 200 

{
  "@odata.context": "https://outlook.office.com/api/v2.0/$metadata#Me/TaskGroups/$entity",
  "@odata.id": "https://outlook.office.com/api/v2.0/Users('dc2d952a-78ff-4609-b3ae-eb66271747bf@8638a6dc-2d66-40dc-aecb-b2436ec47fc0')/TaskGroups('AAMkADIyAAAhrbe-AAA=')",
  "Id": "AAMkADIyAAAhrbe-AAA=",
  "ChangeKey": "hmM7Eb/jgEec8l3+gkJEawAAIbAGjw==",
  "IsDefaultGroup": false,
  "Name": "Personal Tasks",
  "GroupKey": "63d640cf-946f-4734-9c29-60dda7b76acb"
}

Eliminar grupos de tareas

Ámbito mínimo necesario

Elimine el grupo de tareas especificado.

Intentar eliminar el grupo de tareas predeterminado My Tasks devolvería HTTP 400 Solicitud incorrecta.

DELETE https://outlook.office.com/api/v2.0/me/taskgroups('{group_id}')

Respuesta

Código de estado de éxito: 204 Sin contenido

Cuerpo de la respuesta: la tarea actualizada.

Solicitud de ejemplo

DELETE https://outlook.office365.com/api/v2.0/me/taskgroups('AAMkADIyAAAhrbe-AAA=')

Respuesta de ejemplo

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.

O bien, obtenga más información sobre el uso de la plataforma de Office 365: