# When Reply sends

> The timing rule — schedule windows in UTC without DST, contact-timezone override, holiday calendars, daily contact capacity, and per-email delays.

**A message sends when its schedule window is open. Schedules run on UTC and do not adjust for Daylight Saving Time; a contact's own timezone applies when set and enabled. Max new daily contacts overrides Max emails per day and applies every day, including weekends; holiday calendars skip nationally recognized public holidays.**

_Status: Reviewed — human-edited, facts not yet confirmed against the product._

## At a glance

| Aspect | Detail |
| --- | --- |
| **What it governs** | The days, hours, and pace at which sequence messages go out |
| **Trigger** | A sequence step becomes due for a contact |
| **Inputs** | Schedule days and time ranges, schedule timezone (UTC-based), contact timezone, holiday calendars, Max new daily contacts, Max number of emails per day, per-email delay |
| **Result** | The message sends inside the open window, spaced by the configured delay |
| **Configurable** | Everything — the schedule, follow-up schedule, timezone handling, holiday calendars, and every limit |
| **Does not** | Adjust for Daylight Saving Time, choose the sending mailbox ([Mailbox selection](/behavior/mailbox-selection)), or reorder steps |
| **Plans** | Team Edition users can also view and manage teammates' schedules |

## Rule summary

A [schedule](/specifications/schedules) defines which weekdays and time ranges messages
can go out, in a chosen sending timezone. **Reply uses UTC time and does not account for
Daylight Saving Time** — adjust sending hours manually when clocks change. A delivery
window of at least **2.5-4 hours** is recommended so all emails have time to send.
Follow-ups can use a separate schedule. On top of the window, daily capacity applies:
**Max new daily contacts overrides Max number of emails per day** and prepares contacts
for Step 1 **every day, including weekends**.

## Trigger

A sequence step becomes due for an enrolled contact, and the sequence's schedule window
opens.

## Decision logic

1. Evaluate the schedule: selected days and time ranges in the schedule's sending timezone. If the **Separate schedule for follow-ups** toggle is on, first-touch and follow-up messages use their own days and hours.
2. If **Use contact's specific time-zone if set** is on (Advanced settings) and the contact has a timezone, sending times follow the contact's local time instead.
3. If **Skip public holidays** is on, days in the selected holiday calendar are skipped. System calendars include only nationally recognized public holidays — regional or state-level holidays are excluded (audited: United States, United Kingdom, Canada, Australia, Germany, France). Custom calendars can mark any days, optionally pre-filled from an existing calendar.
4. Apply daily capacity: the sequence starts at most **Max new daily contacts** per day, and sends at most **Max number of emails per day** first-step emails (up to 10,000). The contacts limit wins over the emails limit.
5. Space individual sends by the **Delay between each email sent** — at least 120-180 seconds is recommended, and the system needs an additional 10-15 seconds to process each send.

**How a contact's timezone is set automatically:** during import, Reply detects the
timezone when the **Country** column is filled (full name or ISO 3166-1 alpha-2 code) and
either the **State** or the **City** column is filled, all meeting ISO 3166 standards. If
the timezone cannot be determined, the user's own timezone is applied to the prospect.

## Result

The message sends inside the open window, in the schedule's timezone (or the contact's,
when enabled and set), spaced from the previous send by the configured delay.

## State changes

| Field | Change |
| --- | --- |
| Daily capacity snapshot | Recalculated once per day at UTC midnight |
| New contacts | Prepared for Step 1 daily per Max new daily contacts, including weekends |
| Send queue | Emails go out only during open windows, spaced by the per-email delay |

## Exceptions

- **Daylight Saving Time is not applied** — schedules stay on UTC, so local send times shift by an hour when clocks change unless you adjust the schedule.
- **Add until capacity vs. Add full amount** — the default *Add until capacity* mode only tops contacts up to the daily limit and respects the schedule: when the schedule is closed (for example, weekends), it does not add new contacts. *Add full amount* adds the full configured number every day regardless of the schedule or of contacts still waiting in Step 1.
- **Max new daily contacts overrides Max number of emails per day** — the system prepares contacts for Step 1 every day, including weekends, based on the contacts limit.
- **A schedule in use cannot be deleted** — change the sequences using it first.

## Configuration that changes this rule

Schedules are created and managed in Settings > Schedules: pick the days, drag the time
range, set the sending timezone, and optionally enable a separate follow-up schedule, the
contact-timezone override, and a holiday calendar. One schedule can be made the default
for new sequences. Per-sequence capacity — Max new daily contacts, the addition mode, Max
number of emails per day, and the per-email delay — lives in Sequence > Settings > General
settings. See [Configure sending limits](/how-to/configure-sending-limits).

## Limits

| Limit | Value |
| --- | --- |
| Recommended delivery window | At least 2.5-4 hours |
| Max first-step emails per sequence per day | Up to 10,000 |
| Recommended delay between individual emails | 120-180 seconds |
| System processing overhead per email | An additional 10-15 seconds |
| Capacity snapshot recalculation | Once per day at UTC midnight |
| Timezone base | UTC, no Daylight Saving Time adjustment |
| System holiday calendars | Nationally recognized public holidays only |

## FAQ

### Why did my send times shift by an hour?

Reply uses UTC and does not account for Daylight Saving Time. When your region changes
clocks, the schedule's UTC hours stay put — adjust the sending hours manually or use an
external timezone converter to set them.

### Does Reply send on weekends?

Only if the schedule includes weekend days. Note the asymmetry: Max new daily contacts
prepares contacts for Step 1 every day including weekends, but in the default *Add until
capacity* mode no new contacts are added while the schedule is closed. Actual sending
always waits for an open window.

### How does Reply know a contact's timezone?

It is detected during import when the Country column is filled and either State or City is
filled, following ISO 3166 naming. Otherwise the user's timezone is applied. Combined with
the **Use contact's specific time-zone if set** toggle, sends then follow each contact's
local time.

### Which holidays does Skip public holidays cover?

System calendars carry only nationally recognized public holidays for the selected country
— regional and state-level holidays are excluded. For anything else, create a custom
calendar and mark the exact days to skip.

## Related

- [Schedules](/specifications/schedules)
- [Sequence execution](/behavior/sequence-execution)
- [Mailbox selection](/behavior/mailbox-selection)
- [Why was an email not sent?](/troubleshooting/email-was-not-sent)

## Build with Reply

- REST API: [docs.reply.io](https://docs.reply.io/api-reference/introduction) — schedules endpoints
- MCP: [agents.reply.io/mcp](https://agents.reply.io/mcp) — agents create and assign schedules
