# Schedules

> The specification of Reply schedules — weekly sending windows in UTC with no DST adjustment, contact-timezone sending, national holiday calendars, defaults, and changing the schedule of an active sequence.

**A schedule defines when sequences may send: weekdays, time ranges, and a sending timezone, evaluated in UTC with no Daylight Saving Time adjustment. Follow-ups can use a separate schedule, sending can follow the contact's time zone, and holiday calendars skip nationally recognized holidays. Reply recommends a delivery window of at least 2.5-4 hours.**

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

## At a glance

| Aspect | Detail |
| --- | --- |
| **What it is** | The weekly sending windows, timezone, and holiday calendars that time a sequence's messages |
| **Belongs to / Contains** | Used by any number of [sequences](/specifications/sequences); one schedule can be the default for new sequences; holiday calendars (system or custom) attach to it |
| **Surfaces** | UI · REST API · MCP |
| **Key limit** | Reply recommends a delivery window of at least **2.5–4 hours** so emails have enough time to send |
| **Lifecycle** | Created → optionally made default → deleted, but only once no sequence uses it |
| **Does not** | Adjust for Daylight Saving Time (Reply uses UTC), include regional or state-level holidays in system calendars, or speed sending up — it only opens and closes time windows |
| **Plans** | All plans; Team Edition members can view and manage teammates' schedules via the All Owners dropdown |

## Definition

A schedule defines *when* a sequence is allowed to send: the weekdays and time ranges when
messages go out, evaluated in a chosen sending timezone, with an optional separate schedule
for follow-ups and optional holiday calendars that block whole days. Reply uses **UTC time
and does not account for Daylight Saving Time** — use an external time zone converter if you
need to compensate.

## Purpose

Schedules keep outreach inside working hours and the right time zone without per-sequence
manual timing — including, when enabled, each contact's own local time.

## Relationships

| Relationship | Object |
| --- | --- |
| Used by | Any number of [sequences](/specifications/sequences); a sequence's schedule is picked from the existing list via the **Schedule** button on its Steps tab |
| Default | One schedule can be made default (**Make default**) — it automatically applies to new sequences |
| Extended by | Holiday calendars — a system calendar per selected country, or a custom calendar of specific days |
| Managed in | **Settings → Schedules**; Team Edition shows teammates' schedules under **All Owners** |

## Creation

A schedule is created from **Settings → Schedules → New schedule**: enter a name, select the
sending timezone, select the days when messages should go out, and set the sending time
range by dragging the time block or using the **+** icon. Reply recommends a delivery window
of at least **2.5–4 hours**. Turning on **Separate schedule for follow-ups** gives follow-up
messages their own days and hours.

A custom holiday calendar can be created from scratch (**Create custom calendar**) or from
an existing one: the **Start from existing calendar** selector pre-fills the new calendar
with all holidays from the chosen source (system or custom), each removable individually.
The calendar name is never pre-filled. Every calendar in the dropdown has a download icon
that exports its holidays to a CSV file with the columns **Holiday name**, **Start date**,
**End date**.

## Configuration

| Setting | Controls |
| --- | --- |
| Sending timezone | The timezone the windows are evaluated in — UTC-based, with no Daylight Saving Time adjustment |
| Days and time ranges | The weekdays and hours when messages may go out |
| Separate schedule for follow-ups | Different days and sending hours for follow-up messages |
| Use contact's specific time-zone if set | Under Advanced settings — sends at each contact's local time when their time zone is known |
| Skip public holidays | Blocks sending on the selected country's public holidays, or on the days in a custom calendar |
| Make default | Applies this schedule automatically to new sequences |

A contact's time zone can be determined automatically during import when the **Country**
column is filled and either the **State** column is filled or a **City** column is present.

System holiday calendars include **only nationally recognized public holidays** — regional
or state-level holidays are excluded (audited: United States, United Kingdom, Canada,
Australia, Germany, France). Use a custom calendar to skip additional days.

## Processing behavior

Sending happens only inside the schedule's open windows; the interaction with step delays
and daily limits is specified in [When Reply sends](/behavior/sending-schedules). Launching
a sequence outside its sending hours shows a warning that the sequence is inactive — sending
starts on the next open day unless the schedule is opened.

To change the schedule of an active sequence, open its **Steps** tab and click the
**Schedule** button: pick another schedule from the existing list (a new one must be created
first in Settings), or click **Customize** to edit timezones, sending hours, and open days.
After updating the schedule, restart the sequence by turning its toggle off and back on so
the changes apply right away.

## Limits

| Limit | Value |
| --- | --- |
| Minimum recommended delivery window | **2.5–4 hours** |
| Time basis | UTC; Daylight Saving Time is not applied |
| System holiday calendars | Nationally recognized public holidays only (audited: United States, United Kingdom, Canada, Australia, Germany, France) |
| Holiday CSV export columns | Holiday name, Start date, End date |

## Deletion behavior

A schedule is deleted with the bin icon in **Settings → Schedules** — but only when no
sequence is still using it. While sequences reference the schedule, the bin icon is
inactive; switch those sequences to another schedule first.

## Edge cases

- Reply evaluates all schedules in UTC and does not account for Daylight Saving Time — after a DST switch, adjust the sending hours yourself or use an external time zone converter when setting them.
- With *Use contact's specific time-zone if set* enabled, contacts without a detected time zone follow the schedule's own timezone; detection on import needs Country plus State or City.
- An active sequence can only switch to a schedule that already exists — the Schedule button offers no way to create one inline.
- When starting a custom calendar from an existing one, holidays are pre-filled but the calendar name never is.

## FAQ

### Can I change the schedule for an active sequence?

Yes. Use the **Schedule** button on the sequence's Steps tab to pick another existing
schedule or **Customize** the current one, then restart the sequence by turning the toggle
off and back on so the changes apply right away.

### Does Reply adjust schedules for Daylight Saving Time?

No. Reply uses UTC time and does not account for Daylight Saving Time — if needed, use an
external time zone converter to set your sending hours correctly.

### What happens when a sequence launches outside sending hours?

A warning says the sequence is inactive. Either open the schedule, or sending starts
automatically on the next open day. See
[Why was an email not sent?](/troubleshooting/email-was-not-sent).

### Can sending follow the contact's local time?

Yes — turn on **Use contact's specific time-zone if set** under Advanced settings. The
contact's time zone is detected during import when the Country column is filled and either
State is filled or a City column is present.

### Do holiday calendars cover regional holidays?

No. System calendars include only nationally recognized public holidays (audited: United
States, United Kingdom, Canada, Australia, Germany, France). Create a custom calendar —
optionally starting from an existing one — to skip regional days.

## Related

- [When Reply sends](/behavior/sending-schedules)
- [Sequences](/specifications/sequences)
- [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 and holiday-calendar endpoints
- MCP: [agents.reply.io/mcp](https://agents.reply.io/mcp) — agents create and assign schedules
