Skip to content

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.

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.

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-5

Each 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 weekday
Value "MON" out of range 0-7
Invalid step "*/0"
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
  • 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.
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.