<!-- https://developers.silktide.com/v1/concepts/schedules | Concepts -->

# Schedules

Things that repeat, such as a website's retests and a [report schedule](https://developers.silktide.com/v1/governance/report-schedules.md), say how often with the same fields: an interval, a period, and the date the schedule counts from.

```json
{
  "scheduleInterval": "day",
  "schedulePeriod": 5,
  "scheduleFromDate": 1767225600
}
```

| Field | What it is |
| --- | --- |
| `scheduleInterval` | The unit, such as `day`, `week`, `month` or `year`. |
| `schedulePeriod` | How many of them apart each run is. `day` and `5` runs every five days. |
| `scheduleFromDate` | When the schedule counts from, as a [timestamp](https://developers.silktide.com/v1/concepts/dates-and-times.md). Each run falls a whole number of periods after it, so a weekly schedule from a Monday runs on Mondays. |

## Website retests

A website's `schedule`, on [Get a website](https://developers.silktide.com/v1/governance/websites/get-website.md) and [Update a website](https://developers.silktide.com/v1/governance/websites/update-website.md), adds two fields:

| Field | What it is |
| --- | --- |
| `schedulePreset` | A named schedule in place of the three fields above: `five-daily` (every five days, Silktide's default), `weekly` (Mondays), `monthly` (the first of the month), or `none` for no retests. Empty when the interval and period were set directly. |
| `isActive` | `false` keeps the schedule but stops it running. |

An empty `scheduleInterval` means the website is not retested on a schedule.

## Report schedules

A report schedule uses only the three shared fields. Its `scheduleInterval` is one of `day`, `week`, `month` or `year` and defaults to `week`, and its `schedulePeriod` is from `1` to `90`.
