Browse documentation

Hooks / Docs / Scheduled hooks

Scheduled hooks

Last updated 24/08/2026

Scheduled hooks run on a timetable you describe in plain words — the schedule builder turns “Every weekday at 09:00” into a cron expression for you, previewing the next three runs in your local time. Custom 5-field cron is available for power users.

  • Times are UTC (the builder shows your local equivalent).
  • Schedules are checked every 5 minutes — that's the finest granularity.
  • No schedule = hourly. Invalid cron is rejected on save.
  • Scripts receive context.scheduledAt; there is no context.event.

Example — escalate stale work weekly

// Schedule: Every week · Mon-Fri · 09:00
let n = 0;
await jira.forEachIssue('status not in (Done) AND updated <= -14d', async (issue) => {{
  await jira.addComment(issue.key, 'Still needed?');
  n++;
}});
return {{ escalated: n }};