# Why is my email stuck in Accepted or Scheduled?

> Accepted emails normally leave within seconds and scheduled ones at their send time. Find out what delays them and when to cancel, reschedule or resend.

This article helps when an email stays in **Accepted** or **Scheduled** longer than you expect. Both statuses mean Emailit has the email and hasn't finished a delivery attempt yet.

## Symptoms

- An email shows **Accepted** ("Accepted for delivery") for many minutes.
- A scheduled email shows **Scheduled** after the time you expected it to go out.
- The **Deliveries** tab on the email page is empty, or shows an internal error entry.

## Cause

**Accepted** emails are queued and normally sent within seconds. They stay longer when:

- **A delivery attempt hit an internal error.** The **Deliveries** tab shows `An internal error occurred while sending this email. This message will be retried automatically.` The email keeps its status and is retried with growing delays.
- **Emailit is processing a backlog or an incident.** Check [status.emailit.com](https://status.emailit.com).

Note that a temporary refusal from the recipient's server shows as **Attempted**, not **Accepted**. See [What does the Attempted status mean?](/docs/kb/email-status-attempted/).

**Scheduled** emails wait until their `scheduled_at` time, then go out within seconds. They go straight from **Scheduled** to **Delivered**, or another final status, without passing through **Accepted**. A scheduled email that seems late is usually:

- **Scheduled for a different time than you meant.** A time without an offset, or a phrase like "tomorrow at 9am", can be read in a different time zone than yours.
- **Delayed by the same internal errors as above.**

## Fix

1. **Check the times on the email.** Open it in **Email API → Emails**. The summary shows when it was created and, for scheduled emails, when it's scheduled. Switch between UTC and local time in the user menu under **Timezone** to compare.

2. **Read the Deliveries tab.** If it shows an internal error, Emailit retries on its own. You don't need to resend, and resending creates a duplicate.

3. **Use explicit time zones.** Send `scheduled_at` as ISO 8601 with an offset, such as `2026-10-02T09:00:00+02:00`, or as a Unix timestamp. The API response returns the parsed `scheduled_at`, so log it and compare. See [Scheduling](/docs/email-api/scheduling/).

4. **Reschedule or cancel if needed.** Call [Update a scheduled email](/docs/api-reference/emails/update/) with a new `scheduled_at`, or select **Cancel delivery** on the email page. Both only work until 3 minutes before the scheduled time, and the new time must be at least 3 minutes ahead.

5. **Check for an incident.** If many emails are stuck at once, check [status.emailit.com](https://status.emailit.com) before you resend anything.

To follow emails in real time, subscribe a [webhook](/docs/webhooks/) to `email.delivered`, `email.attempted` and `email.bounced`. For every status, see [Email statuses](/docs/logs/email-statuses/).

## Still stuck?

If an email stays **Accepted** for more than an hour with no incident posted, [contact support](/contact/) or ask in [Discord](https://discord.emailit.com) with the email ID (`em_…`).

---
Source: https://emailit.com/docs/kb/email-stuck-in-scheduled-or-accepted/
