Saltar al contenido

Referencia · tasks

Crear tarea

POST/tasks

Requiere el scope tasks:write.

Defaults: status: backlog, priority: medium, progress: 0.

Idempotencia: si se envía la cabecera Idempotency-Key, un reintento con la misma clave devuelve la tarea original (también con 201) sin duplicarla. La clave se compara por usuario y el cuerpo NO se compara: misma clave con cuerpo distinto devuelve la tarea original.

Cabeceras

Idempotency-Keystring

Clave de idempotencia opcional (única por operación lógica). Máximo 128 caracteres, ASCII imprimible sin espacios; el prefijo local: está reservado. Inválida → 422 invalid_idempotency_key.

Rango: hasta 128 caracteres

Cuerpo de la petición

JSON, obligatorio. Modelo TaskCreate.

titlestringobligatorio

No puede ser vacío (tras trim).

Rango: al menos 1 carácter

priorityTaskPriority

Valores: highmediumlow

Por defecto: medium

statusTaskStatus

Valores: backlogin_progressdone

Por defecto: backlog

notesstring
projectIdstring | null

Id de proyecto propio o compartido; null = sin proyecto. Proyecto ajeno → 403; inexistente → 404.

deadlinenumber

Rango: ≥ 0

deadlineStartnumber

Rango: ≥ 0

deadlineTypeDeadlineType

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

Valores: exactdateweekmonthcustom

recurrenceRecurrenceInput

Regla de recurrencia al crear o en PATCH. Campos no listados → 422 unknown_field. Los valores deben ser enteros; dayOfMonth admite -1 (último día) o 1..31, nunca 0.

Campos de RecurrenceInput
frequencyRecurrenceFrequencyobligatorio

Valores: dailyweeklymonthlyyearly

intervalinteger

Rango: 1–99

dayOfWeekinteger

Rango: 0–6

dayOfMonthinteger

Rango: -1–31

No admite otros campos: uno desconocido responde 422.

No admite otros campos: uno desconocido responde 422.

Respuestas

201

Tarea creada (o la original, en un replay idempotente).

dataTaskobligatorio

Tarea. Todos los campos están siempre presentes; los sin valor van como null (nunca se omiten). Timestamps en epoch milisegundos UTC.

Campos de Task
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.

401

Key ausente, malformada, inexistente, revocada, expirada o API deshabilitada (invalid_api_key, indistinguibles a propósito).

Códigos: invalid_api_key

403

Scope insuficiente (insufficient_scope), recurso sin acceso (forbidden) o sincronización de calendario de una tarea que creó otra persona (calendar_creator_only).

Códigos: insufficient_scopeforbiddencalendar_creator_only

404

El projectId asignado no existe.

Códigos: not_found

422

Entrada inválida (invalid_json, unknown_field, missing_field, invalid_field, invalid_query_param, empty_patch, body_too_large — cuerpos de más de 64 KB —, invalid_idempotency_key, validation_error, y al asignar assignee_not_member, task_not_shared, task_private).

Códigos: invalid_jsonunknown_fieldmissing_fieldinvalid_fieldinvalid_query_paramempty_patchbody_too_largeinvalid_idempotency_keyvalidation_errorassignee_not_membertask_not_sharedtask_private

429

Límite superado (rate_limited) — 60 req/min (ráfagas de 20) y 5.000 req/día por key. Reintentar tras Retry-After.

Códigos: rate_limited

Cabecera Retry-After: Segundos (enteros) a esperar antes de reintentar.

500

Error interno (internal_error). Cuerpo opaco a propósito; reintentar con backoff.

Códigos: internal_error

Documentación