Programar Envíos
Envíos en una fecha y hora futura con soporte de timezone.
La API de ReallyQuickEmails permite programar el envio de correos para una fecha y hora futura usando el endpoint POST /send-email. Puedes especificar la fecha de envio con timestamps ISO 8601 o con lenguaje natural.
Campos relevantes
| Campo | Tipo | Descripcion |
|---|---|---|
scheduled_at | string | Fecha y hora de envio. Acepta ISO 8601 o lenguaje natural. |
timezone | string | number | Zona horaria para interpretar scheduled_at. Opcional. |
Formato de scheduled_at
Timestamps ISO 8601
Puedes especificar una fecha y hora exacta en formato ISO 8601, incluyendo el offset de zona horaria:
"2025-10-16T15:00:00+09:00"
"2025-12-25T09:00:00-03:00"
"2026-01-15T08:30:00Z"Lenguaje natural
Tambien puedes usar expresiones en lenguaje natural. La API las interpreta en relacion al momento actual:
"tomorrow at 3pm"
"in 2 hours"
"next monday at 9am"Cuando usas lenguaje natural, el campo timezone determina como se interpreta la hora. Si no se especifica, se usa la zona horaria por defecto del proyecto (default_timezone).
Formato de timezone
El campo timezone acepta varios formatos:
| Formato | Ejemplo |
|---|---|
| Nombre IANA | "America/Santiago", "Asia/Tokyo" |
| Offset UTC (string) | "+09:00", "-03:00" |
| Horas numericas | 9, -3 |
Si no se incluye timezone en la solicitud, la API usa el valor de default_timezone configurado en el proyecto.
Validacion
La fecha programada debe ser en el futuro. Si scheduled_at resuelve a una fecha en el pasado, la API retorna un error 400 Bad Request.
Procesamiento
Los correos programados son procesados por un worker en segundo plano que ejecuta cada 30 segundos. Esto significa que un correo programado puede enviarse hasta 30 segundos despues de la hora programada.
Respuesta
Cuando se programa un correo exitosamente, la respuesta incluye los siguientes campos:
| Campo | Descripcion |
|---|---|
scheduled_send_id | UUID del correo programado. |
scheduled_for | Fecha y hora de envio en UTC (ISO 8601). |
scheduled_for_local | Fecha y hora de envio en la zona horaria especificada (formato legible). |
timezone | Zona horaria utilizada para la programacion. |
message | Mensaje descriptivo confirmando la programacion. |
Ejemplos
Programar con timestamp ISO 8601
curl -X POST https://api.reallyquickemails.com/send-email \
-H "Content-Type: application/json" \
-H "x-project-id: proj_abc123" \
-d '{
"recipient": "cliente@ejemplo.com",
"sender": "ventas@mitienda.com",
"senderName": "Mi Tienda",
"subject": "Recordatorio de cita",
"templateId": "recordatorio-cita",
"scheduled_at": "2025-10-16T15:00:00+09:00"
}'Respuesta:
{
"success": true,
"scheduled": true,
"scheduled_send_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"scheduled_for": "2025-10-16T06:00:00.000Z",
"scheduled_for_local": "2025-10-16 15:00 (Asia/Tokyo)",
"timezone": "Asia/Tokyo",
"message": "Correo programado para 2025-10-16 15:00 (Asia/Tokyo)"
}Programar con lenguaje natural y zona horaria
curl -X POST https://api.reallyquickemails.com/send-email \
-H "Content-Type: application/json" \
-H "x-project-id: proj_abc123" \
-d '{
"recipient": "cliente@ejemplo.com",
"sender": "ventas@mitienda.com",
"senderName": "Mi Tienda",
"subject": "Oferta especial",
"templateId": "oferta-especial",
"scheduled_at": "tomorrow at 3pm",
"timezone": "America/Santiago"
}'Respuesta:
{
"success": true,
"scheduled": true,
"scheduled_send_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"scheduled_for": "2025-10-17T18:00:00.000Z",
"scheduled_for_local": "2025-10-17 15:00 (America/Santiago)",
"timezone": "America/Santiago",
"message": "Correo programado para 2025-10-17 15:00 (America/Santiago)"
}Programar con offset numerico
curl -X POST https://api.reallyquickemails.com/send-email \
-H "Content-Type: application/json" \
-H "x-project-id: proj_abc123" \
-d '{
"recipient": "cliente@ejemplo.com",
"sender": "ventas@mitienda.com",
"senderName": "Mi Tienda",
"subject": "Seguimiento",
"templateId": "seguimiento",
"scheduled_at": "next monday at 9am",
"timezone": -3
}'Respuesta:
{
"success": true,
"scheduled": true,
"scheduled_send_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"scheduled_for": "2025-10-20T12:00:00.000Z",
"scheduled_for_local": "2025-10-20 09:00 (UTC-3)",
"timezone": "UTC-3",
"message": "Correo programado para 2025-10-20 09:00 (UTC-3)"
}