Schedule signals fire on a cron expression, running jobs periodically without any external dependency. Friday evaluates the expression internally — no tunnel, no webhook, no credentials.Documentation Index
Fetch the complete documentation index at: https://docs.hellofriday.ai/llms.txt
Use this file to discover all available pages before exploring further.
Config
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
schedule | string | Yes | — | Cron expression (standard 5-field syntax) |
timezone | string | No | UTC | IANA timezone name (e.g. America/Los_Angeles) |
Example
workspace.yml
Cron syntax
Standard 5-field cron:minute hour day-of-month month day-of-week. Ranges (1-5), lists (1,3,5), steps (*/15), and wildcards (*) are all supported via the cron-parser library.
Common schedules
Common schedules
| Expression | Fires |
|---|---|
*/5 * * * * | Every 5 minutes |
0 * * * * | Every hour on the hour |
0 9 * * * | 9:00 AM every day |
0 9 * * 1-5 | 9:00 AM Mon–Fri |
0 0 1 * * | Midnight on the 1st of month |
30 2 * * 0 | 2:30 AM every Sunday |
Testing an expression
Testing an expression
Use any online cron evaluator (e.g. crontab.guru) to sanity-check your expression before committing. Invalid expressions fail workspace validation at load time with a clear error.
Timezone
Iftimezone is omitted, the schedule runs in UTC. Set it to the IANA name of the zone you care about (e.g. Europe/Warsaw, Asia/Tokyo) — Friday handles DST transitions automatically.
Payload
Schedule signals fire with an empty payload by default. If you want to pass data into the job, add aschema block describing the shape — but remember Friday itself doesn’t populate anything, so the job has to read constants or workspace state.
workspace.yml
Troubleshooting
Schedule doesn't fire
Schedule doesn't fire
Check Friday logs on startup for
invalid cron expression. If the expression passes parsing but the job still doesn’t run, verify the timezone — a schedule of 0 9 * * * with UTC timezone will fire at 9 AM UTC, which might be the middle of the night locally.Schedule fires twice around DST transitions
Schedule fires twice around DST transitions
IANA zones handle DST correctly, but if your workspace was running during the transition moment, some cron expressions (e.g.
30 2 * * * in a zone that springs forward past 2:30 AM) can skip or duplicate. Choose a time that doesn’t fall in the DST window, or use UTC for timing-sensitive jobs.
