Saltar al contenido

Modelos

Tarea

En esta página

Campos

idstringobligatorio
titlestringobligatorio
statusTaskStatusobligatorio

Valores: backlogin_progressdone

priorityTaskPriorityobligatorio

Valores: highmediumlow

progressnumber | nullobligatorio

Rango: 0–100

notesstring | nullobligatorio
projectIdstring | nullobligatorio
deadlinenumber | nullobligatorio

Fin del intervalo o fecha exacta (epoch ms).

deadlineStartnumber | nullobligatorio

Inicio del intervalo (epoch ms).

deadlineTypeDeadlineType | nullobligatorio

Granularidad del deadline (deadline = fin o fecha exacta, deadlineStart = inicio opcional).

Valores: exactdateweekmonthcustom

recurrenceRecurrence | nullobligatorio

Solo la lleva la ocurrencia pendiente de una serie; las completadas van con null.

Campos de Recurrence
frequencyRecurrenceFrequencyobligatorio

Valores: dailyweeklymonthlyyearly

intervalnumber

Rango: 1–99

dayOfWeeknumber

0 = domingo … 6 = sábado.

Rango: 0–6

dayOfMonthnumber

-1 = último día del mes; si no, 1..31.

Rango: -1–31

seriesIdstring | nullobligatorio

Serie recurrente a la que pertenece (pendiente o completada); null si nunca se repitió.

createdAtnumberobligatorio
updatedAtnumberobligatorio
completedAtnumber | nullobligatorio
createdByPersonobligatorio

Cuenta de SecretarIA. Sin correo a propósito.

Campos de Person
idstringobligatorio
namestring | nullobligatorio

Nombre de pila; null si la cuenta ya no existe.

assigneePerson | nullobligatorio

Persona asignada en un proyecto compartido; null = sin asignar.

Campos de Person
idstringobligatorio
namestring | nullobligatorio

Nombre de pila; null si la cuenta ya no existe.

  • Siempre presentes: un campo sin valor llega como null; nunca se omite.
  • Fechas: todos los timestamps son milisegundos desde 1970, en UTC.
  • Al crear: si no los envías, status es backlog, priority es medium y progress es 0.

Plazos

Un plazo puede ser una fecha exacta o un intervalo:

  • deadline es el final del intervalo, o la fecha exacta.
  • deadlineStart es el inicio, opcional.
  • deadlineType indica la granularidad: exact, date, week, month o custom.

Completar una tarea

PATCH con {"status": "done"}:

  • La primera vez que se completa, fija completedAt y pone progress a 100.
  • Si es recurrente, se crea sola la siguiente ocurrencia.
  • Volver a backlog o in_progress limpia completedAt.

Editar

  • PATCH no borra campos: no hay forma de vaciar notes o deadline desde la API.
  • Solo projectId, recurrence y assigneeId aceptan null: sin proyecto, deja de repetirse y sin asignar.
  • Mover la tarea a un proyecto de otra persona responde 403; a uno que no existe, 404.

Recurrencia

Una tarea se repite si lleva recurrence:

  • frequency: daily, weekly, monthly o yearly.
  • interval: cada cuántos periodos, de 1 a 99.
  • dayOfWeek: de 0 (domingo) a 6 (sábado).
  • dayOfMonth: de 1 a 31, o -1 para el último día del mes.

Para repetirse, la tarea necesita un deadline (la primera ocurrencia) y no puede estar completada; si no, la respuesta es 422. En un PATCH, un patrón nuevo se aplica desde la siguiente ocurrencia (la actual conserva su fecha), y recurrence: null hace que deje de repetirse sin borrar la tarea.

Series

Las ocurrencias de una misma tarea recurrente comparten seriesId. Solo la pendiente lleva recurrence; las completadas tienen recurrence: null y el mismo seriesId.

Proyectos compartidos

Una clave ve y edita lo mismo que su dueño en la app: sus tareas y las de los proyectos en los que es propietario o miembro.

  • Cada tarea lleva createdBy y assignee, con id y name (nunca el correo).
  • PATCH con {"assigneeId": "…"} asigna la tarea a alguien del proyecto, y null la deja sin asignar.
  • Las tareas privadas que crean las integraciones de otra persona no aparecen nunca: responden 404.
  • Un proyecto archivado es de solo lectura: editar o borrar sus tareas responde 409 project_archived.

Borrar

DELETE /tasks/{id} responde 204 sin cuerpo y es definitivo: deshacer solo existe dentro de la app. Si la tarea es recurrente, tienes que indicar qué borrar:

  • ?scope=occurrence: solo esta; la serie sigue con la siguiente.
  • ?scope=series: toda la serie. Se para y se borra la pendiente; las completadas se conservan.

Sin scope, la respuesta es 409 recurring_scope_required y no se borra nada.

Documentación