---
title: "Schedule a step"
description: "Set when a step sends: the offset from the reference date, the time of day, the recipient's or the workspace's time zone, the days of the week, what happens on a weekend and whether an overdue step is skipped."
sidebar:
  order: 2
area: flows
feature: steps
appPath: /flows/home
lastVerified: 2026-10-22
version: "2026-10-16"
audience: admin
screenshots:
  - id: flows-steps-schedule-menu
    caption: The Schedule menu with its presets and the Custom option.
related:
  - flows/automations/configure-a-date-trigger
  - flows/automations/handle-late-enrollments
  - flows/campaign-templates/reschedule-a-step-on-the-calendar
intercom:
  - id: "16857955"
    title: Schedule Messages (Pyn 2)
    url: https://intercom.help/pyn/en/articles/16857955
    note: replaces
  - id: "6005691"
    title: Time and schedule your Pyn
    url: https://intercom.help/pyn/en/articles/6005691-time-and-schedule-your-pyn
    note: "Pyn 1 article, kept for reference"
---

In an automation every step is timed from the enrollment's **reference date**, the start date, anniversary or other date the trigger anchors on. In a campaign a step has a calendar date instead. Either way you also choose a time of day, a time zone and the days on which Pyn is allowed to deliver.

## Before you start

- You know the automation's reference date. [Configure a date trigger](https://support.pynhq.com/flows/automations/configure-a-date-trigger/) explains how the trigger sets it.
- Employees have a time zone in [Directory](https://support.pynhq.com/directory/employees/) if you plan to use **Recipient Time Zone**; without one Pyn uses the workspace time zone for that person.

![The Schedule menu offers presets relative to the reference date, and Custom for any other offset.](https://support.pynhq.com/media/flows/steps/flows-steps-schedule-menu.png)

## Steps

1. In Pyn, open the automation from **Flows**, **Automations**, and select the step. On **Configure**, the first row is the schedule.

2. Select **Schedule** and choose an offset: **14 days before**, **7 days before**, **3 days before**, **1 day before**, **on the day of**, **1 day after**, **7 days after**, **14 days after**, **30 days after**, **60 days after**, **90 days after** or **180 days after**. For anything else choose **Custom** and enter an amount, a unit (**Days**, **Weeks**, **Months**, **Years**) and **Before** or **After**.

3. In **at**, set the time of day. The picker moves in 5-minute steps; 10:00 is the default.

4. In **in**, choose **Recipient Time Zone** or a named time zone. Recipient time zone means a 10:00 email reaches London at 10:00 London time and Austin at 10:00 Austin time.

5. Select the **Advanced** tab. Under **Days of Week**, keep **Weekdays Only** or select **All Days**, or tick the days yourself.

6. Under **On Non-Delivery Days**, choose what happens when the computed day is not one you ticked: **Deliver anyway**, **Deliver on previous delivery day** (the default) or **Deliver on next delivery day**.

7. Tick **Skip if overdue at enrollment** if a step whose day has already passed when someone enrols should be skipped rather than sent straight away.

> **Caution:** A step scheduled before the start date only reaches people whose record arrives in Pyn before that day, and only if the step's audience includes **Joiner**. The card warns **Sent before the start date but the joiner isn't in the audience.** when it does not. See [Handle late enrollments](https://support.pynhq.com/flows/automations/handle-late-enrollments/).

## How Pyn works out the send time

Pyn adds the offset to the reference date, moves the day backwards or forwards if it falls on a day you did not tick, then sets the time of day in the chosen time zone. "Previous delivery day" walks back to the nearest allowed day even when that is still after the reference date; if no allowed day exists within a week either side, the step is delivered anyway. The reference date itself is a calendar date with no time, so the step's **at** time is the only clock involved.

## What you should see

The step card shows the offset, for example **7 days before**. Under [Enrollments](https://support.pynhq.com/activity/enrollments/), each enrollment's step shows the exact date and time Pyn computed for that person, and its delivery reads **Scheduled** until then. On a campaign, the same fields appear as **Scheduled date**, **at** and **in**; drag the step on the calendar to move the date, see [Reschedule a step on the calendar](https://support.pynhq.com/flows/campaign-templates/reschedule-a-step-on-the-calendar/).

## Related

- [Configure a date trigger](https://support.pynhq.com/flows/automations/configure-a-date-trigger/) for where the reference date comes from.
- [Handle late enrollments](https://support.pynhq.com/flows/automations/handle-late-enrollments/) for records that arrive after a step's day.
- [Reschedule a step on the calendar](https://support.pynhq.com/flows/campaign-templates/reschedule-a-step-on-the-calendar/) for campaign steps.

## Related Intercom articles

- [Schedule Messages (Pyn 2)](https://intercom.help/pyn/en/articles/16857955) — replaces
- [Time and schedule your Pyn](https://intercom.help/pyn/en/articles/6005691-time-and-schedule-your-pyn) — Pyn 1 article, kept for reference
