Referencia · reminders
Crear recordatorio
/reminders Requiere el scope reminders:write.
Sin notify, avisa el mismo día ({ "onDay": true }). Con allDay: true, date se lleva a la medianoche de ese día en la zona horaria del usuario. recurrence y allDay exigen date.
En un proyecto compartido lo ven y editan todos sus miembros activos.
Idempotencia: igual que en tareas: la misma Idempotency-Key devuelve el recordatorio original (201) sin duplicarlo.
Cabeceras
Idempotency-KeystringClave 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.
Cuerpo de la petición
JSON, obligatorio. Modelo ReminderCreate.
titlestringobligatorioNo puede ser vacío (tras trim).
datenumberallDaybooleanExige
date, que se lleva a la medianoche de su día.recurrenceRecurrenceInputRegla de recurrencia al crear o en PATCH. Campos no listados →
422 unknown_field. Los valores deben ser enteros;dayOfMonthadmite -1 (último día) o 1..31, nunca 0.Campos de RecurrenceInput
frequencyRecurrenceFrequencyobligatoriointervalintegerdayOfWeekintegerdayOfMonthinteger
No admite otros campos: uno desconocido responde
422.notifyNotifyAviso del recordatorio.
onDay= avisar el día;daysBefore= días de antelación;minutesBefore= minutos antes de la hora (0 = a la hora; sin él, la antelación por defecto del usuario). En uno de todo el día el aviso sale al empezar la jornada.Campos de Notify
onDaybooleanobligatoriodaysBeforeintegerminutesBeforeinteger
No admite otros campos: uno desconocido responde
422.notesstringlocationstringprojectIdstring | nullId de proyecto propio o compartido;
null= sin proyecto. Proyecto ajeno →403; inexistente →404.
No admite otros campos: uno desconocido responde 422.
Respuestas
201
Recordatorio creado (o el original, en un replay idempotente).
dataReminderobligatorioRecordatorio: algo a una hora o un día, sin estado (no se completa: se borra). Todos los campos están siempre presentes; los sin valor van como
null. Timestamps en epoch milisegundos UTC.Campos de Reminder
idstringobligatoriotitlestringobligatoriodatenumber | nullobligatorioInstante (epoch ms); en uno recurrente, la primera ocurrencia.
null= sin fecha.allDaybooleanobligatorioSin hora;
datees la medianoche de ese día en la zona horaria de quien lo creó.recurrenceRecurrence | nullobligatorioRegla de recurrencia de la tarea. Los campos opcionales pueden estar ausentes.
Campos de Recurrence
frequencyRecurrenceFrequencyobligatoriointervalnumberdayOfWeeknumber0 = domingo … 6 = sábado.
dayOfMonthnumber-1 = último día del mes; si no, 1..31.
notifyNotifyobligatorioAviso del recordatorio.
onDay= avisar el día;daysBefore= días de antelación;minutesBefore= minutos antes de la hora (0 = a la hora; sin él, la antelación por defecto del usuario). En uno de todo el día el aviso sale al empezar la jornada.Campos de Notify
onDaybooleanobligatoriodaysBeforeintegerminutesBeforeinteger
No admite otros campos: uno desconocido responde
422.locationstring | nullobligatorionotesstring | nullobligatorioprojectIdstring | nullobligatoriocreatedByPersonobligatorioCuenta de SecretarIA. Sin correo a propósito.
Campos de Person
idstringobligatorionamestring | nullobligatorioNombre de pila;
nullsi la cuenta ya no existe.
createdAtnumberobligatorioexcludedKeysarray<string>obligatorioDías (
YYYY-MM-DD) quitados de un recurrente conDELETE ?scope=occurrence.
401
Key ausente, malformada, inexistente, revocada, expirada o API deshabilitada (invalid_api_key, indistinguibles a propósito).
403
Scope insuficiente (insufficient_scope), recurso sin acceso (forbidden) o sincronización de calendario de una tarea que creó otra persona (calendar_creator_only).
404
El projectId asignado no existe.
409
El proyecto de la tarea está archivado y es de solo lectura (project_archived). No se aplicó nada.
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, share_pending).
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.
500
Error interno (internal_error). Cuerpo opaco a propósito; reintentar con backoff.