Schedules
A schedule lets you configure a report to refresh automatically at set intervals without a manual run.
Configuration
A schedule is defined as an object in the report's schedule parameter:
json
{
"schedule": {
"enabled": true,
"interval": "daily",
"time": "06:00",
"timezone": "Europe/Moscow",
"days_of_week": [1, 2, 3, 4, 5],
"day_of_month": 1,
"retry_on_failure": true,
"max_retries": 3
}
}Schedule parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
enabled | boolean | Yes | Whether the schedule is enabled |
interval | string | Yes | The run frequency |
time | string | Yes | The run time in HH:MM format |
timezone | string | No | The time zone for the run time |
days_of_week | array of numbers | No | Days of the week (1=Mon, 7=Sun) for weekly |
day_of_month | number | No | The day of the month (1–28) for monthly |
retry_on_failure | boolean | No | Retry on error (true by default) |
max_retries | number | No | The maximum number of retries (3 by default) |
Intervals
| Interval | Description | Additional parameters |
|---|---|---|
hourly | Every hour | None |
daily | Every day | None |
weekly | Once a week | days_of_week |
biweekly | Once every two weeks | days_of_week |
monthly | Once a month | day_of_month |
Examples
Daily at 6 AM
json
{
"schedule": {
"enabled": true,
"interval": "daily",
"time": "06:00",
"timezone": "Europe/Moscow"
}
}Weekdays at 8:00
json
{
"schedule": {
"enabled": true,
"interval": "weekly",
"time": "08:00",
"days_of_week": [1, 2, 3, 4, 5],
"timezone": "Europe/Moscow"
}
}The 1st of every month
json
{
"schedule": {
"enabled": true,
"interval": "monthly",
"time": "00:00",
"day_of_month": 1,
"timezone": "Europe/Moscow"
}
}Error behavior
With retry_on_failure enabled:
- Scheduled run → error
- Wait 5 minutes → retry attempt 1
- Wait 15 minutes → retry attempt 2
- Wait 30 minutes → retry attempt 3
- All attempts exhausted → report status
failed
If retry_on_failure: false — the status goes straight to failed on the first error.
Missed runs
If the system was unavailable at the scheduled run time:
- The missed run is not executed once the system recovers
- The next run happens on the regular schedule
Exception: for daily and hourly, if the missed window is smaller than the interval, the run executes immediately once the system recovers.
Plan limits
| Plan | Maximum schedules | Minimum interval |
|---|---|---|
| Free | Schedules unavailable (manual runs only) | — |
| Solo | 20 | daily |
| Agency | 100 | hourly |
| Agency Pro | Unlimited | hourly |
Manual rerun
A schedule doesn't block manual runs. You can run a report manually at any time, independent of its schedule.