*Workflows › Build*

# Waits and dates

> A wait does not block anything: the run is parked, the worker is freed, and the run comes back when its time arrives. You can wait for a delay, or until a date.

## Three steps for time

| Step | What it does | Limit |
| --- | --- | --- |
| «Wait» | Waits for an amount of minutes, hours or days. The amount is a number you type; it cannot come from a variable. | 30 days. Checked when you save and again when the step runs. |
| «Wait until» | Waits until a date or a moment, taken from a day you pick or from a date variable. It does not add or subtract days: use Adjust date for that. | 365 days ahead. Checked only when the step runs, because a variable has no value earlier. |
| «Adjust date» | Adds days to a date, or subtracts them with a negative number. The number is typed, not a variable. It publishes the new date. | 3650 days in either direction. |

## What a waiting run looks like

A run that reaches a wait is saved with the moment it should wake, and its state becomes «Waiting». It uses no worker while it sleeps. The platform wakes it on the first minute tick after that moment, so it may be up to about a minute late. A wait does not count as a failed attempt and does not use up a retry.

- The moment to wake is recorded the first time the step runs. If the date variable it came from changes later, the wait does not move.
- If something re-queues the run early, for example a worker taking over after a crash, the step compares the recorded moment with the clock and parks again instead of skipping the wait.
- A date that has already passed is not an error: the step does not wait and the run continues. Arriving late at a milestone is normal.
- A wait step costs one credit like any action step; replaying it after the run wakes up is free.
- A wait inside a loop or a branch parks the whole run.

## Days without a time

A date with no time, such as `2026-10-15`, names no moment. Wait until reads it as 00:00 of that day in the company's time zone, Europe/Madrid unless you changed it in «Date and formats» («Company time zone»). A date with a time and a zone, such as `2026-10-15T09:30:00+02:00`, is used as it is.

Accepted formats are `YYYY-MM-DD` or `YYYY-MM-DDTHH:mm[:ss[.fff]]` followed by `Z` or `±HH:MM`. A date with a time but no zone is refused, and so is a day that does not exist, such as `2026-02-31`.

## Today

Every run has a variable «Today» (`system_today`) under «System»: the date the run was queued, in the company's time zone. A run queued at 01:00 in Spain is already "today" in Spain even though it is still yesterday in UTC.

> **Today does not move:** `system_today` is fixed when the run is queued. A run that waits five days and then continues still sees the day it was queued, and so does `trigger_createdAt`. This is what makes a resumed run take the same decisions it took before.

## Example: a follow-up two days later

*The shape of the quote follow-up template*

```text
Adjust date:   date = Today, add 2 days          -> Date
Wait until:    date = Date
Find quote:    quote id = Quote > id                       -> Quote
Condition:     Quote > operative status  is equal to  pending
  Then:  create a task "Call the customer"
```

The guide [Warn sales when a quote is viewed and not signed](https://docs.filmo.io/workflows/guides/quote-viewed-no-signature) builds this one step by step.

> **Tip:** Check the thing you waited for again after the wait. A quote can be signed, an invoice can be paid, an incident can be solved while the run slept; the templates re-read the record and use a «Condition» before acting.

---

Canonical URL: https://docs.filmo.io/workflows/waits-and-dates  
Last updated: 2026-10-09