mailnix / Scheduled sends

    Sending

    Scheduled sends

    Set send_at to an RFC 3339 timestamp and mailnix queues the message instead of dispatching it immediately. Available on paid plans.

    Rules

    • send_at may be at most 3 days in the future. The short horizon is deliberate: it keeps the blast radius of a forgotten time bomb small.
    • The message is fully validated at submit time (recipients, template render, suppression check happens again at dispatch).
    • The response returns a trace_id right away; the trace shows the queued state until dispatch.
    curl -X POST https://api.mailnix.ch/v1/messages \
      -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "to": "customer@example.com",
        "subject": "Reminder: appointment tomorrow",
        "text": "See you at 14:00.",
        "send_at": "2026-07-15T08:00:00Z"
      }'

    The MCP tool email_send_test takes the same send_at argument.

    Managing the queue

    • email_scheduled_list(status?, limit?) lists queued and cancelled scheduled sends (MCP).
    • email_scheduled_cancel(trace_id) cancels a queued send before its send_at; the call is idempotent. Once dispatched, a send cannot be cancelled.
    • The dashboard's Scheduled page shows the same queue with a cancel button per row.

    Interaction with idempotency

    idempotency_key works on scheduled sends exactly like immediate ones: a retry of the submit call returns the original trace instead of queueing a duplicate. See Idempotency.