# See every upcoming run | DRE

> dre schedule ls lists when every schedule fires, with DST worked out, and the exact command for each run.

[← All use cases](https://getdre.com/#use-cases)

# See every upcoming run

Cron and recurrence rules are easy to write and hard to check: does “the 2nd Tuesday” mean what you think, and what happens on the night the clocks change? An orchestrator has the same question with higher stakes, because the trigger and the run must agree on the date. dre schedule ls answers both: a table for people, and versioned JSON for whatever runs your jobs.

Recorded from a real run: the next firings of every schedule that runs a report, then one occurrence as JSON.

Recorded from a real run: the next firings of every schedule that runs a report, then one occurrence as JSON.

terminal

```bash
# The next firing of every schedule that runs client_statement
dre schedule ls -s client_statement --limit 1

# Every firing in the next five weeks, as JSON for an orchestrator
dre schedule ls --output json
```

one occurrence (JSON)

```yaml
{
  "key": "close_client_a/2026-10-31T19:00:00Z",
  "fires_at": "2026-10-31T19:00:00Z",
  "fires_at_local": "2026-11-01T06:00:00+11:00",
  "run_date": "2026-11-01",
  "bindings": [{"report": "client_statement", "set": "client_a", "binding": "client_a"}],
  "invocation": {
    "argv": ["dre", "run", "--schedule", "close_client_a"],
    "env": {"DRE_RUN_AT": "2026-10-31T19:00:00Z", "DRE_RUN_DATE": "2026-11-01"}
  }
}
```

### What to notice

-   Cron, iCalendar rules and “every N days” land in one list, each in its own timezone.
-   On the night the clocks go forward, a 02:30 run fires at 03:00; when they go back, it fires once.
-   Each occurrence carries the command and environment that run it: no cron parsing or DST maths in your orchestrator.
-   Stable keys and a hash per schedule let a deployment upsert after every merge and replace only what changed.
-   It reads the project and nothing else: no profiles, plugins or network, so it runs in CI.
-   A tested recipe loads it into Postgres and runs what’s due, with Airflow, Databricks Jobs and cron examples.

### In the docs

-   [Schedule occurrences →](https://getdre.com/docs/schedule-ls/)
-   [Orchestration recipe →](https://getdre.com/docs/orchestration/)
