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
CronCreateresult 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
CronListrow 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,CronCreatereturned onlyid,humanSchedule,recurringanddurable.CronListuses the job's storednextFireAtor 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
CronCreatedescription 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,recurringCapMsandoneShotMaxMs. - 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.
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.
| [`$.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
* For a tool that [background subagents drop](/docs/en/sub-agents#available-tools), such as `CronCreate`, remove the entryerrors see the edit
Whether jobs actually get the 50% and 30-minute figures, or other values set elsewhere, is not settled.
A small documentation edit on Error reference touched a line naming CronCreate after this was published.