# email.scheduled

> An email was scheduled for a later send time, or rescheduled.

## When it fires

Once per recipient delivery when a send with `scheduledAt` is accepted, and again each time the email is [rescheduled](/docs/api/emails/reschedule).

## Example payload

Example identifiers are shown below.

```json
{
  "id": "00000000-0000-4000-8000-000000000001",
  "type": "email.scheduled",
  "schema_version": 1,
  "data": {
    "id": "delivery_example",
    "message_id": "message_example",
    "recipient": "reader@example.com",
    "occurred_at": "2026-10-04T10:00:00.000Z",
    "scheduled_at": "2026-10-05T08:00:00.000Z"
  },
  "created_at": "2026-10-04T10:00:00.000Z"
}
```

## Event fields

| Field | Type | Description |
| --- | --- | --- |
| `data.id` | string | Recipient delivery ID. |
| `data.message_id` | string | Message ID shared by its recipient deliveries. Use it to cancel or reschedule. |
| `data.recipient` | string | Recipient associated with this event. |
| `data.occurred_at` | string | ISO 8601 timestamp of when the email was scheduled or rescheduled. |
| `data.scheduled_at` | string | ISO 8601 timestamp of the send time. The latest event for a delivery has its current time. |

## Handle this event

Store `scheduled_at` with the delivery. When it is sent, [email.sent](/docs/webhooks/emails/sent) follows; if it is canceled, [email.canceled](/docs/webhooks/emails/canceled) follows.

[Verify the signature](/docs/webhooks/verify-webhooks-requests) before reading the payload. Deduplicate by the envelope `id`, not the delivery ID: a delivery can have several different events.

---

Source: https://connect.nxiom.com/docs/webhooks/emails/scheduled
