# schedules.yml reference | DRE

> Every key of schedules.yml, where named schedules say which report runs when and with which variables, including the every key for recurring timings.

You're reading the docs for DRE 0.8 (v0.8.1). [This page for 0.11](https://getdre.com/docs/reference-schedules/)

# schedules.yml reference

The schedules file, `schedules.yml`: a list of named schedules.

Where: `schedules.yml`.

For editor autocomplete and validation, add this as the first line of the file ([editor setup](https://getdre.com/docs/v0.8/editor-setup/)):

```yaml
# yaml-language-server: $schema=https://getdre.com/schemas/v0.8/schedules.schema.json
```

For copyable examples and common errors, see [Schedules](https://getdre.com/docs/v0.8/schedules/). The [glossary](https://getdre.com/docs/v0.8/glossary/) defines DRE’s terms.

The file is a list; each entry has these keys.

## Keys

Key

Type

Default

Description

`name` (required)

string

The schedule’s name: letters, digits and `_`, not starting with a digit. Unique across the project.

`report`

string

The report to run. Use `report` or `select`, not both.

`set`

string

The Set of `report` to run. Only with `report`.

`select`

string

A selector for the reports to run, e.g. `tag:regulatory`. Use `report` or `select`, not both.

`vars`

map

Variables for the run: above the report’s own and below `--var`.

`timing`

string

The name of a timing in `timings.yml` to fire on. Use `timing` or one of `cron`, `every`, `rrule`; with `timing`, the schedule sets none of the timing’s keys (`timezone`, `starting`, `at`, `except`, `also`).

`timezone`

string

The timezone it fires in, and the one `run.date` and `run.now` use, an IANA name such as `Australia/Sydney`. Default: the project’s `timezone:` for firing (the report’s for the run), then UTC.

`enabled`

boolean

`false` pauses the schedule: it keeps its name and settings but `dre schedule ls` lists no occurrences for it. Default: `true`.

`cron`

string

A cron expression (5 fields, or a macro such as `@daily`). A schedule needs exactly one of `timing`, `cron`, `every` or `rrule`.

`every`

map (see below)

Every N days, weeks or months, with exactly one unit, e.g. `{days: 3}`.

`rrule`

string

An iCalendar recurrence rule, e.g. `FREQ=MONTHLY;BYDAY=2TU`. Use `starting` for a rule with `INTERVAL` above 1 or `COUNT`, and `at` for its time of day.

`starting`

string

With `every` or `rrule`: the first date, `YYYY-MM-DD`. `every` needs it, and so does a rule with `INTERVAL` above 1, a `COUNT`, or a day it takes from its start.

`at`

string

With `every` or `rrule`: the time of day, `HH:MM` (24-hour), unless the rule sets `BYHOUR`/`BYMINUTE`. Default: 00:00.

`except`

list of string

Dates (`YYYY-MM-DD`, in its timezone) it doesn’t fire on, e.g. holidays.

`also`

list of string

Extra dates (`YYYY-MM-DD`) it fires on, at its time of day in its timezone. Needs a timing that fires at one time of day.

## `every`

Every N days, weeks or months, with exactly one unit, e.g. `{days: 3}`.

Key

Type

Default

Description

`days`

integer

Every this many days.

`weeks`

integer

Every this many weeks.

`months`

integer

Every this many months.

[Previous  
Report YAML reference](https://getdre.com/docs/v0.8/reference-report/)[Next  
sets.yml reference](https://getdre.com/docs/v0.8/reference-sets/)
