CronCreate: `durable: true` silently ignored for one-shot tasks
Summary
CronCreate accepts a durable: true parameter per its schema, documented as "persist to .claude/scheduled_tasks.json and survive restarts." In practice the flag appears to be ignored for one-shot tasks — the response confirms scheduling but states the task is session-only and will die when Claude exits.
This is a silent failure: the assistant reports a successful schedule, and the user assumes durability. Any "remind me in N days/weeks/months" workflow built on CronCreate is broken once N exceeds session lifetime, with no error surfaced.
Reproducer
CronCreate(
cron="7 9 11 6 *",
prompt="...",
recurring=false,
durable=true
)
Returns:
Scheduled one-shot task 2cde82ff (7 9 11 6 *). Session-only (not written to disk, dies when Claude exits). It will fire once then auto-delete.
.claude/scheduled_tasks.json is not created/updated.
Expected
Either:
durable: trueactually persists the task to.claude/scheduled_tasks.jsonand the response reflects this, OR- The tool rejects/warns when
durable: trueis combined withrecurring: false(if one-shots are intentionally non-durable, say so in the description and surface an error rather than silently downgrading).
Impact
Reproducible on Claude Code Opus 4.7 (1M context), 2026-05-11. The user-visible behaviour is a silent contract violation between tool schema and runtime, which is the worst class of bug for an agent to hand to a user — the agent reports success and moves on.
Workaround
For durable reminders beyond session lifetime, use a calendar event (Google Calendar via MCP) or a launchd one-shot. Avoid relying on CronCreate for cross-session scheduling.
Environment
- Claude Code with Opus 4.7 (1M context)
- macOS Darwin 23.4.0
- Encountered while scheduling a recurring
/cleaningaudit one month out
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗