DocumentationScheduled emails

Scheduled emails

POST/GET/DELETE /scheduled-emails — defer transactional sends.

Schedule a transactional email for future delivery. Quota is checked at send time, not when you schedule.

Endpoints

MethodPathScopeDescription
POST/scheduled-emailsemail:sendSchedule a send
GET/scheduled-emailsemail:readList scheduled sends
DELETE/scheduled-emails/:idemail:sendCancel a pending send

JWT dashboard sessions bypass scope checks (same as other modules).

POST /scheduled-emails

Same body as POST /emails/send plus:

FieldRequiredDescription
sendAtYesISO 8601 datetime when the email should be sent
timezoneNoIANA timezone — default Europe/Madrid
{
  "to": "[email protected]",
  "subject": "Appointment reminder",
  "htmlBody": "<p>Your appointment is tomorrow at 10:00.</p>",
  "sendAt": "2026-06-20T10:00:00.000Z",
  "timezone": "Europe/Madrid",
  "templateVersionId": "clxversion..."
}

Response 201:

{
  "id": "clxsched...",
  "tenantId": "clx...",
  "status": "PENDING",
  "sendAt": "2026-06-20T10:00:00.000Z",
  "timezone": "Europe/Madrid",
  "payload": { "to": "[email protected]", "subject": "Appointment reminder" },
  "createdAt": "2026-06-18T12:00:00.000Z"
}

GET /scheduled-emails

GET /scheduled-emails?page=1&limit=20&status=PENDING

status filter: PENDING | SENT | FAILED | CANCELLED.

DELETE /scheduled-emails/:id

Cancels only rows in PENDING status and removes the associated BullMQ job (mc:scheduled-emails queue).