Follow Discord
Sweep 22 Oct 2026 · 21:04Z Build v2.1.309 528 read Stable v2.1.308 Latest v2.1.309 Next v2.1.309 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.299 ·

Scheduled jobs show their next run time and use a per-job offset

CronCreate and CronList now give each job's next run time, and the scheduler shifts jobs by a per-job offset of up to 50% of the period

Group of 4 You'll notice Improvements
JSON All of v2.1.299
You'll noticeTier: how much it should matter to you
2Useful: my rating, 1 to 5
1Signal: worth watching, 1 to 5
Scheduled TasksArea: what it touches
ImprovementsKind: in v2.1.299,
ImprovementsSection of the release

Unclear Whether jobs actually get the 50% and 30-minute figures, or other values set elsewhere, is not settled.

What

CronCreate and CronList are the tools Claude uses to schedule a prompt to run later and to list the jobs already scheduled.

  • The CronCreate result now ends with "Next run: ..." after the readable schedule. Before, it said only that the recurring job was scheduled, with its schedule and whether it lasts beyond the session.
  • Each CronList row now adds ", next run ..." between the session-only marker and the prompt text.
  • Both tools return nextFireAt, the time of the job's next run with the scheduler's per-job offset included. Before, CronCreate returned only id, humanSchedule, recurring and durable. CronList uses the job's stored nextFireAt or works one out, and never shows a time earlier than now.
  • The calculation of the next run now takes into account whether a job runs only once (oneShot).
  • The CronCreate description now says the scheduler shifts each job by a fixed per-job offset. By default that is up to 50% of the period late, with a maximum of 30 minutes. Before, it described "a small deterministic jitter" of up to 10% of the period, with a maximum of 15 minutes. The numbers are filled in at runtime from shared values: recurringFrac, recurringCapMs and oneShotMaxMs.
  • Claude is told to give the job's actual next run time, as returned by the tool and by CronList, and not the minute written in the cron expression.

In the prompt capture taken under this release, the stock CronCreate description is 3,123 characters and its wording has moved. The CronList description is 106 characters and unchanged.

Why

A recurring job can now run noticeably later than the time in its schedule, up to half its period. Because the real next run time is shown, you and Claude no longer have to guess when a job will actually run.

Read from
Names in the bundleCronCreate
Since it was published

The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.

Confirmed since Anthropic's documentation has since written up CronCreate, on Use the mods API. | [`$.tool.call`](/docs/en/plugins/mods/reference#mods-api-methods) of Bash with `run_in_background: true`, Monitor, or CronCreate | Resolves with `{ deny: '<tool> was not run: it starts background work, a schedule or a goal, and <reason>'… plugins/mods/api see the edit
Added since A small documentation edit on Error reference touched a line naming CronCreate after this was published. * For a tool that [background subagents drop](/docs/en/sub-agents#available-tools), such as `CronCreate`, remove the entry errors see the edit
How sure we are
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubtWhether jobs actually get the 50% and 30-minute figures, or other values set elsewhere, is not settled.
Anthropic's documentation agreesA small documentation edit on Error reference touched a line naming CronCreate after this was published.

See this entry in the whole of v2.1.299 →

Feedback