Schedule (cron)
A schedule trigger starts a run of its pipeline whenever a 5-field cron expression matches the current minute, in your computer’s local time. Each firing creates a synthetic issue from the trigger’s title and description, so prompts can use {{issue.title}} and {{issue.description}} like any other run.
Typical uses: nightly dependency bumps, weekly reports, periodic flaky-test hunts. See Nightly maintenance.
Fields
Section titled “Fields”Open Triggers → Add trigger → Schedule.
| Field | Stored as | Default | Notes |
|---|---|---|---|
| Name | name |
Schedule |
|
| Runs pipeline | pipelineId |
first pipeline | |
| Cron expression | schedule.cron |
0 3 * * 1-5 |
3:00 on weekdays. See syntax below. |
| Task title | schedule.title |
Nightly maintenance |
Becomes {{issue.title}}. If empty, the trigger name is used. |
| Task description | schedule.description |
Update dependencies and fix anything that breaks. |
Becomes {{issue.description}}. |
Schedule triggers have no account, polling, webhook or write-back settings. Validate in the editor checks the cron expression and reports the parse error, if any.
Cron syntax
Section titled “Cron syntax”Five fields separated by spaces:
┌──────── minute 0–59│ ┌────── hour 0–23│ │ ┌──── day of month 1–31│ │ │ ┌── month 1–12│ │ │ │ ┌ day of week 0–7 (0 and 7 are Sunday)│ │ │ │ │0 3 * * 1-5Each field supports:
| Syntax | Meaning | Example |
|---|---|---|
* |
every value | * in hour = every hour |
n |
a single value | 30 |
a-b |
an inclusive range | 1-5 = Monday to Friday |
a,b,c |
a list (items can be ranges or steps) | 0,30 or 1-5,0 |
*/n |
every n-th value across the whole range | */15 in minute = 0, 15, 30, 45 |
a-b/n |
every n-th value within a range | 9-17/2 in hour = 9, 11, 13, 15, 17 |
a/n |
from a to the end of the range, every n |
5/10 in minute = 5, 15, 25, 35, 45, 55 |
Aliases (the whole expression):
| Alias | Equivalent |
|---|---|
@hourly |
0 * * * * |
@daily, @midnight |
0 0 * * * |
@weekly |
0 0 * * 0 |
@monthly |
0 0 1 * * |
@weekdays |
0 9 * * 1-5 (9:00, not midnight) |
Day of month and day of week: as in standard cron, if both are restricted (neither is *), the expression matches when either matches. 0 9 1 * 1 runs at 9:00 on the 1st of the month and every Monday.
Not supported: month and weekday names (JAN, MON), ?, L, W, #, seconds or year fields, and time zones. Expressions with those fail with errors like:
Cron expression needs 5 fields: minute hour day month weekdayValue "MON" out of range 0-7Invalid step "*/0"Examples
Section titled “Examples”| Expression | When |
|---|---|
0 3 * * 1-5 |
03:00 Monday–Friday |
30 2 * * * |
02:30 every day |
0 */4 * * * |
every 4 hours on the hour |
*/30 9-17 * * 1-5 |
every 30 minutes during working hours on weekdays |
0 8 * * 1 |
08:00 every Monday |
0 6 1 * * |
06:00 on the 1st of each month |
0 0 1,15 * * |
midnight on the 1st and 15th |
How firing works
Section titled “How firing works”- Jimothy checks triggers every 5 seconds. When the current local minute matches, the trigger fires once for that minute.
- Firings are not caught up. If the app isn’t running, or the computer is asleep, at the scheduled minute, that run is skipped. Jimothy keeps running in the tray when you close the window; quitting from the tray menu stops schedules.
- Each firing always starts a new run. Dedup doesn’t apply to schedules.
- Runs still respect the global Max concurrent runs and the pipeline’s own limit; extra runs wait in the queue.
- An invalid expression is reported as the trigger’s error (
Invalid cron: …) on the Triggers page, and as a Trigger errors notification.
The synthetic issue
Section titled “The synthetic issue”| Template value | Value |
|---|---|
{{issue.source}} |
schedule |
{{issue.key}} |
SCHED-<YYYYMMDDHHMM>, e.g. SCHED-202609280300 (built from the UTC time) |
{{issue.title}} |
Task title (or the trigger name) |
{{issue.description}} |
Task description |
{{issue.labels}} |
empty |
{{issue.raw.firedAt}} |
UTC timestamp, e.g. 2026-09-28 03:00 |
With the default branch template jimothy/{{issue.key | slug}}, each firing gets its own branch such as jimothy/sched-202609280300.