scheduledAt on a send request when the message must not enter provider delivery immediately.
The dashboard lists the accepted message as scheduled until dispatch.
Explicit schedule
Send an ISO 8601 timestamp with a timezone offset orZ.
The timestamp must be at least 30 seconds and no more than 30 days in the future.
After acceptance
Signal returns the message ID,scheduled state, and scheduled time.
The message appears in Emails immediately even though it has not been sent.
At the requested time Signal moves it into the normal delivery pipeline.
Cancel
Cancel while the message still hasscheduled status.
Once dispatch starts, cancellation is no longer a reliable control.
A successful cancellation changes the state to cancelled.
Safe rescheduling
Treat rescheduling as cancel-then-create:- Cancel the original scheduled message.
- Confirm it is cancelled.
- Create a new send with the new timestamp and a new logical idempotency key.
- Store the replacement Signal ID.
Common validation failures
- Timestamp is less than 30 seconds ahead.
- Timestamp is more than 30 days ahead.
- Timestamp has no unambiguous timezone.
- The From domain is no longer verified.
- The same idempotency key already belongs to the original logical send.
The API also documents optimal-time scheduling fields for eligible non-transactional categories.
Use the API reference for that contract; the dashboard workflow described here uses an explicit time.
SDK example
Start with the basic send example, then add the scheduling field for your SDK. Add the scheduling value to the normalSendEmailRequest. scheduledAt must be a future RFC 3339
timestamp produced by your application.
TypeScript