> ## Documentation Index
> Fetch the complete documentation index at: https://jetemail.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Scheduled Email

> Schedule transactional emails for future delivery

# Scheduled Email

You can schedule a transactional email for future delivery by setting `scheduledAt` on the [`POST /email`](/api-reference/email/send-an-email) request. JetEmail holds the message until the requested time and then sends it through the same pipeline as an immediate send.

## When to use it

Use scheduled sends for:

* Reminders, drip messages, and follow-ups
* Time-zone aware announcements
* Any send where the trigger time is known in advance

For sends that need to fire immediately, simply omit `scheduledAt`.

## Field reference

| Field         | Type              | Notes                                                      |
| ------------- | ----------------- | ---------------------------------------------------------- |
| `scheduledAt` | integer or string | Unix seconds (UTC) **or** ISO 8601 / RFC 3339 with offset. |

`scheduled_at` (snake\_case) is also accepted as an alias.

**Limits**

* The time must be in the future.
* The time must be no more than **30 days** out.
* A request that violates either rule returns `400 Bad Request`.

## Accepted formats

```json theme={null}
// ISO 8601 (UTC)
{ "scheduledAt": "2026-05-15T10:00:00Z" }

// ISO 8601 with offset
{ "scheduledAt": "2026-05-15T10:00:00-04:00" }

// Unix seconds (UTC)
{ "scheduledAt": 1762435200 }
```

## Example request

```bash theme={null}
curl -X POST https://api.jetemail.com/email \
  -H "Authorization: Bearer transactional_xxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Your App <hello@yourdomain.com>",
    "to": "user@example.com",
    "subject": "Reminder",
    "text": "This will arrive at the scheduled time.",
    "scheduledAt": "2026-05-15T10:00:00Z"
  }'
```

## Example response

A scheduled send returns **`202 Accepted`** (immediate sends return `201 Created`):

```json theme={null}
{
  "id": "0cd0f31f-1234-4abc-8def-1234567890ab",
  "response": "Scheduled as 0cd0f31f-... for 1762435200",
  "scheduled_at": 1762435200
}
```

The returned `id` is a scheduling UUID that identifies the queued message until it is dispatched.

## Combining with idempotency

Scheduled sends work the same way as immediate sends with the [`Idempotency-Key`](/transactional-email/idempotency-keys) header. Pairing the two is recommended for retried scheduling calls so a network blip does not produce a duplicate scheduled message.
