Plain text · sha256 0ef63049ccf6
The description, line by line
40 lines Line numbers are v2.1.269 on the left and this capture on the right.
1
1
Schedule a prompt to be enqueued at a future time. Use for both recurring schedules and one-shot reminders.
2
2
3
3
Uses standard 5-field cron in the user's local timezone: minute hour day-of-month month day-of-week. "0 9 * * *" means 9am local — no timezone conversion needed.
4
4
5
5
## One-shot tasks (recurring: false)
6
6
7
7
For "remind me at X" or "at <time>, do Y" requests — fire once then auto-delete.
8
8
Pin minute/hour/day-of-month/month to specific values:
9
9
"remind me at 2:30pm today to check the deploy" → cron: "30 14 <today_dom> <today_month> *", recurring: false
10
10
"tomorrow morning, run the smoke test" → cron: "57 8 <tomorrow_dom> <tomorrow_month> *", recurring: false
11
11
12
12
## Recurring jobs (recurring: true, the default)
13
13
14
14
For "every N minutes" / "every hour" / "weekdays at 9am" requests:
15
15
"*/5 * * * *" (every 5 min), "0 * * * *" (hourly), "0 9 * * 1-5" (weekdays at 9am local)
16
16
17
17
## Avoid the :00 and :30 minute marks when the task allows it
18
18
19
19
Every user who asks for "9am" gets `0 9`, and every user who asks for "hourly" gets `0 *` — which means requests from across the planet land on the API at the same instant. When the user's request is approximate, pick a minute that is NOT 0 or 30:
20
20
"every morning around 9" → "57 8 * * *" or "3 9 * * *" (not "0 9 * * *")
21
21
"hourly" → "7 * * * *" (not "0 * * * *")
22
22
"in an hour or so, remind me to..." → pick whatever minute you land on, don't round
23
23
24
24
Only use minute 0 or 30 when the user names that exact time and clearly means it ("at 9:00 sharp", "at half past", coordinating with a meeting). When in doubt, nudge a few minutes early or late — the user will not notice, and the fleet will.
25
25
26
26
## Session-only
27
27
28
28
Jobs live only in this Claude session — nothing is written to disk, and the job is gone when Claude exits.
29
29
30
30
## Not for live watching
31
31
32
32
CronCreate re-runs a prompt at fixed wall-clock intervals. To watch a log file, process, or command output and be notified the moment something changes, use the Monitor tool instead — Monitor streams events as they happen; cron polls on a schedule.
33
33
34
34
## Runtime behavior
35
35
36
36
Jobs only fire while the REPL is idle (not mid-query). The scheduler adds a small deterministic jitter on top of whatever you pick: recurring tasks fire up to 10% of their period late (max 15 min); one-shot tasks landing on :00 or :30 fire up to 90 s early. Picking an off-minute is still the bigger lever.
37
37
38
38
Recurring tasks auto-expire after 7 days — they fire one final time, then are deleted. This bounds session lifetime. Tell the user about the 7-day limit when scheduling recurring jobs.
39
39
40
40
Returns a job ID you can pass to CronDelete.
What it accepts
4 parameters The JSON parameter schema sent beside this description, 977 characters of it. Name, type, then whether the client marked it required.cron
string
required
Standard 5-field cron expression in local time: "M H DoM Mon DoW" (e.g. "*/5 * * * *" = every 5 minutes, "30 14 28 2 *" = Feb 28 at 2:30pm local once).
durable
boolean
optional
Has no effect — durable persistence is not available. All jobs are session-only (in-memory, gone when this Claude session ends).
prompt
string
required
The prompt to enqueue at each fire time.
recurring
boolean
optional
true (default) = fire on every cron match until deleted or auto-expired after 7 days. false = fire once at the next match, then auto-delete. Use false for "remind me at X" one-shot requests with pinned minute/hour/dom/month.
sha256 d439aae1e930 · the schema as the client sent it:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"cron": {
"description": "Standard 5-field cron expression in local time: \"M H DoM Mon DoW\" (e.g. \"*/5 * * * *\" = every 5 minutes, \"30 14 28 2 *\" = Feb 28 at 2:30pm local once).",
"type": "string"
},
"durable": {
"description": "Has no effect \u2014 durable persistence is not available. All jobs are session-only (in-memory, gone when this Claude session ends).",
"type": "boolean"
},
"prompt": {
"description": "The prompt to enqueue at each fire time.",
"type": "string"
},
"recurring": {
"description": "true (default) = fire on every cron match until deleted or auto-expired after 7 days. false = fire once at the next match, then auto-delete. Use false for \"remind me at X\" one-shot requests with pinned minute/hour/dom/month.",
"type": "boolean"
}
},
"required": [
"cron",
"prompt"
],
"type": "object"
}