Scheduled jobs

Run code on a schedule, in your time zone, with run history.

Built on Inngest

Plans: Every plan, including the free app

Scheduled functionsFree appStarterTeamBusinessClient business
IncludedAt most every 10 minutesAny scheduleAny scheduleAny scheduleAny schedule

What you get

  • Any five-field cron schedule
  • Schedules in your own time zone
  • Run history with each step's timing
  • Run a job now, by hand, to check it
  • Retries when a step fails
  • An alert when a job fails three times in a row

How it works

You list a job in the app's whisk.yaml with a schedule and a time zone. Whisk calls the app at each scheduled time. Nothing runs on a timer inside the app, so a sleeping app wakes for the run and goes back to sleep after it.

Every run is recorded with its steps, inputs, outputs and timing. A step that fails is retried on its own, without repeating the steps that worked. If a job fails three times in a row, the business's owners, admins and developers are told once.

Jobs run on Inngest, the open-source workflow engine, so the code is standard Inngest code your coding agent already knows. The same engine runs durable workflows and approval steps.

Example

An electrical wholesaler copies prices and stock levels from its ERP to its website every weekday at 6:00, before the trade counter opens. If the ERP is down for maintenance, the job retries that step and finishes once it is back, and the sales manager gets an email only if it still fails.

For your coding agent

functions:
  - name: price-sync
    cron: "0 6 * * 1-5"
    tz: America/Chicago
    graph: workflows/price-sync.graph.yaml

Check a new job without waiting for its schedule with whisk cron run price-sync, then follow it with whisk runs show <run id>. Every field is in the whisk.yaml reference.

Read more

All features