← Claude Code Hub
✦ Tip #211 Sep 27, 2026

Claude Code scheduled tasks: 3 common failures and how to fix them

A local Claude Code task only runs while the app is open and the machine is awake. Otherwise it gets skipped, shows up hours late, or waits on a permission nobody is there to approve.

Claude Code scheduled tasks: a 9:00 local task that gets stuck on a permission, is skipped while the computer sleeps, or fires at 11pm as a catch-up run, and the fix for each

TL;DR Before you trust a local task, click Run now once and answer "always allow" to every prompt. If it has to run with the lid closed, it isn't Local: it's a remote routine.

In Claude Code Desktop, the Routines page creates two kinds of scheduled task. A Local one runs on your machine, with your files, tools and MCP servers, but only while the app is open and the computer is awake. A Remote one is a cloud routine: it runs with the laptop off, on a fresh clone of the repo, at most once an hour. The full comparison with /loop is in this other tip.

The three failures below belong to local tasks. All of them happen while you're away, which is the whole point of scheduling.

What each run receives

I created a test task and started it with Run now. Every run is a new session in the task's folder, and your prompt arrives wrapped in a notice from Claude Code:

<scheduled-task name="wmedia-tip-test" file="[...]/scheduled-tasks/wmedia-tip-test/SKILL.md">
This is an automated run of a scheduled task. The user is not present to answer questions.
...

Claude knows you're not there and won't ask you anything: when something is ambiguous, it decides on its own. Write the prompt with that in mind.

Failure 1: it sits waiting on a permission

Each task has its own permission mode. If it runs in Manual mode and needs a tool it has no permission for, the run stops until you approve it. The session stays open in the sidebar, waiting for you to come back.

Fix: right after you create the task, click Run now, watch which permissions it asks for, and answer "always allow" to each one. Later runs approve those tools on their own. You can see and revoke them in the task's Always allowed panel. The allow rules in your ~/.claude/settings.json apply too.

One exception has no fix this way: an MCP tool marked requiresUserInteraction asks on every call and offers no "always allow". A task that uses it will stop every time.

Failure 2: it never ran

Open the task and check Review history. Skipped runs show up in the list, and hovering one tells you why: the computer was asleep, the previous run was still going, or other scheduled tasks were already running.

Fix: if it was sleep, the docs say to turn on Keep computer awake under Settings, Desktop app → General. Don't confuse it with "Keep computer awake while Claude works" in the Code tab: that one only holds while a session is working, and at 9:00 nothing is. Either way it stops idle sleep only; closing the lid still puts the machine to sleep (what survives a closed lid). If the task has to run with the laptop closed, make it Remote.

Failure 3: your 9am run fires at 11pm

When the app starts or the computer wakes, Desktop checks whether each task missed any runs in the last seven days. If it did, it starts exactly one catch-up run, for the most recent missed time, and drops the older ones. A daily task that missed six days runs once on wake, even if that's 11pm. On top of that, every task starts a few minutes after its scheduled time, always with the same offset, to spread out traffic.

Fix: if timing matters, put the condition in the prompt:

Only review today's commits. If it's after 5pm, skip the review:
summarize what went unreviewed and stop.

All three at a glance

Symptom Cause Fix
Session open and stuck Unapproved permission in Manual mode Run now and "always allow" each prompt
No run at all Asleep, previous run still going, or other tasks running Review history; Keep computer awake or Remote
Runs at odd hours One catch-up run on wake A time condition in the prompt

Where the task lives

Each local task is a file at ~/.claude/scheduled-tasks/<name>/SKILL.md, with name and description in the frontmatter and the prompt as the body. Edits apply from the next run. The schedule, folder, model and enabled state are not in that file: change them through Edit or by asking Claude. When you delete the task, tick Also delete files on disk if you want the file gone too. When I deleted mine by asking Claude, the SKILL.md stayed on disk.

Official docs: Schedule recurring tasks in Claude Code Desktop

Requirements

  • Claude Desktop 1.1.5368 or later for local tasks, per the docs. Tested in the desktop app with Claude Code v2.1.282 on 27 September 2026.
Free guide

The 51 essentials, as a guide.

One page per tip. Five chapters. What I actually use daily in production. No theory, no fluff.

  • I. Getting started 10 tips
  • II. Awareness 3 tips
  • III. Mastery 22 tips
  • IV. Autonomy 10 tips
  • V. Comparison 6 tips
Are you a professional Web developer?

You'll receive the guide by email · You join the Gravitas newsletter · Unsubscribe anytime

of 51
#

Wmedia · 51 Tips
Free guide · 51 tips · 5 chapters

The 51 essentials, as a guide.

Are you a professional Web developer? · Unsubscribe anytime
Workshop for teams

Multiply your team's output without sacrificing quality: a 6 to 8 hour AI First workshop, online, on the Claude platform.

See the workshop

Want the 51 Claude Code essentials as a guide?