Scheduled sends

Park a send until a time you choose.

Add sendAt to any send and it is parked until that moment instead of going out now.

{
  "from": "Your Business <hello@yourbusiness.com.au>",
  "to": "customer@example.com",
  "subject": "Your appointment is tomorrow",
  "category": "transactional",
  "text": "See you at 9am.",
  "sendAt": "2026-07-20T09:00:00.000Z"
}

Response:

{ "status": "scheduled", "scheduledSendId": "…", "sendAt": "2026-07-20T09:00:00.000Z" }

sendAt is ISO-8601 with an offset — 2026-07-20T09:00:00.000Z or 2026-07-20T19:00:00+10:00. A time in the past, or no sendAt at all, sends immediately.

Release is to the minute, not the second. A send set for 09:00:00 goes out during that minute, not at that exact instant.

Managing what is scheduled

MethodPathPurpose
GET/v1/scheduledlist your pending scheduled sends
GET/v1/scheduled/:idone scheduled send
DELETE/v1/scheduled/:idcancel one that has not gone out yet

Cancelling only works while the send is still pending. Once released it is a normal email, and no API can recall an email that has left.

Time zones, honestly

Store and send UTC where you can. If you schedule in local time, remember that Sydney moves between AEST and AEDT, so "9am next April" is not a fixed number of hours from today. Compute the instant at the time you schedule, using the offset in effect on the target date, and send that.