Skip to main content
Scheduled tasks start a new session automatically at a time and frequency you choose. Use them for recurring work like daily code reviews, dependency update checks, or morning briefings that pull from your calendar and inbox. The Desktop app’s Scheduled tasks page lists both local scheduled tasks and cloud scheduled tasks, formerly routines:
  • Local task: runs on your machine with direct access to your files and tools, but only fires while the app is open and your computer is awake
  • Cloud task: runs even when your computer is off, and can also start on API calls or GitHub events
This page covers local scheduled tasks; for cloud scheduled tasks and their trigger options, see Automate work with scheduled tasks.
If your app shows the feature under its earlier name, click Routines wherever this page says Scheduled and New routine where it says New task.

Compare scheduling options

Claude Code offers three ways to schedule recurring or one-off work:
Use cloud tasks for work that should run reliably without your machine. Use Desktop tasks when you need access to local files and tools. Use /loop for quick polling during a session.
By default, local scheduled tasks run against whatever state your working directory is in, including uncommitted changes. To give each run its own isolated Git worktree instead, select Worktree in the task’s Edit form after you create it. The checkbox is available when the task’s folder is a Git repository.

Create a scheduled task

Local scheduled tasks require Claude Desktop 1.1.5368 or later.
1

Open the Scheduled tasks page

In the Code tab, click Scheduled in the sidebar or in the sidebar’s More menu. If the sidebar shows Routines instead of Scheduled, click Routines, then click New routine, and continue with Full-page form.
2

Start a new task

Click New task to open the New scheduled task dialog. Check for these screens before you continue:
  • If a menu opens with Create with Claude and Set up manually, select Set up manually to open the dialog.
  • If Only on this computer is at the top of the dialog, go to Dialog with Only on this computer at the top before you enter anything.
  • If a menu with Local and Cloud opens, or a full page opens in place of the dialog, go to Full-page form.
3

Name the task

Enter a name in the Name field. Desktop converts it to lowercase kebab-case and uses it as the task’s folder name on disk, so the name must be unique across your tasks.
4

Write the instructions

In the box below the name, enter what Claude should do when the task runs.
5

Turn on Only on this computer

Skip past the Trigger card for now and expand Advanced settings below it. On the General tab, turn on Only on this computer. With it on, the task runs on your machine in a local folder.If the switch is unavailable, clear the repository or the GitHub event or API trigger, because those make the task a cloud scheduled task.
6

Pick the local folder

In the Local folder row, select a folder. Create stays unavailable until you pick one.
7

Set the schedule

Back in the Trigger card, select a schedule preset.
8

Choose the permission mode and model

In the instructions box’s toolbar, select a permission mode and model. If you leave them unchanged, runs use your Claude Code settings and the default model.
9

Create the task

Click Create. If you haven’t trusted the folder yet, Desktop asks you to trust it at this point. The task’s detail page opens.
On the detail page, click the pencil icon to open the Edit form. There you can change the Description that Desktop filled in from your instructions, select Worktree, or switch the schedule to Manual or Custom. You can also create a task by describing what you want in any session. For example, “set up a daily code review that runs every morning at 9am” creates a recurring task. A request like “remind me at 3pm tomorrow to check the deploy” creates a one-time task that disables itself after it fires.

Dialog with Only on this computer at the top

If Only on this computer is at the top of the New scheduled task dialog when it opens, turn it on before you enter anything. When you turn it on, a separate blank form for a local task replaces the form. Then fill in the local form’s fields:
  • Name: enter a name, as in the steps to create a scheduled task.
  • Description: enter a description. Create stays unavailable until you do.
  • The instructions box: enter what Claude should do when the task runs. Select the permission mode and model from the menus in the box.
  • Working folder: select the folder the task runs in. Create stays unavailable until you select one.
  • Trigger: select a schedule. For the presets, see Schedule options.
Click Create. The task’s detail page opens.

Full-page form

If a menu with Local and Cloud opens, select Local. A page titled New local routine or New local scheduled task opens. Fill in its fields:
  • Name: enter a name that is unique across your tasks.
  • Description: enter one.
  • Instructions: enter what Claude should do when the task runs. In the same box, select the permission mode, the model, and the folder the task runs in.
  • Schedule: select one of the schedule options.
If Create is unavailable, hover over it to see what the form still needs. Click Create, and the task’s detail page opens.

Schedule options

When you turn on Only on this computer under Advanced settings, the Trigger card offers Hourly, Daily, Weekdays, and Weekly. To get Manual or Custom for such a task, open its Edit form after you create it. That form, the dialog with Only on this computer at the top, and the full-page form offer these six options:
  • Hourly: runs every hour
  • Daily: runs every day at the local time you pick
  • Weekdays: same as Daily but skips Saturday and Sunday
  • Weekly: shows a time picker and a day picker
  • Manual: no schedule, only runs when you click Run now. Useful for saving a prompt you trigger on demand
  • Custom: runs on a cron expression that you enter and that is evaluated in your local time, such as 0 9 * * * for 9:00 AM each day. Write days of the week and months as numbers, since their names aren’t accepted. Sunday is 0, not 7. The form rejects an expression that runs more often than once per hour.
You can also ask Claude in any Desktop session to set the schedule. Claude isn’t held to the once-per-hour limit and can set a single run at a future time. For example, ask “run the test suite every 30 minutes” or “next Monday at 9am, summarize the pull requests merged since Friday.”

How scheduled tasks run

Local scheduled tasks run on your machine. Desktop checks the schedule every minute while the app is open and starts a fresh session when a task is due, independent of any manual sessions you have open. Each task gets a small delay of a few minutes after the scheduled time to stagger API traffic. The delay is deterministic: the same task always starts at the same offset. Tasks only run while the desktop app is running and your computer is awake. If your computer sleeps through a scheduled time, the run is skipped. To prevent idle-sleep, turn on Keep computer awake in Settings > Desktop app or Settings > This computer > System. Closing the laptop lid still puts it to sleep.
For tasks that need to run even when your computer is off, or that should trigger on an API call or GitHub event, create a cloud scheduled task instead.

Find a run’s session

To open the session a run started, go to the task’s detail page and click that run’s row in the History list. The sidebar’s session list can show a Scheduled group as well, with one row per task. To open the session of a task’s latest run, click the task’s row in that group. To show the group, check which layout you have:
  • Current layout: open the Group and sort menu, select Show, then select Scheduled. The group starts collapsed, so click its heading to expand it. Show lists Scheduled when at least one of your tasks is Active, the Status a task’s detail page shows. If it isn’t listed, use the History list, which works whether or not the group shows.
  • Earlier layout: the group is in the session list with nothing to turn on
In a run’s session, whichever way you reached it, you can see what Claude did, review changes, and respond to permission prompts. Claude can edit files, run commands, create commits, and open pull requests, the same as in a session you start yourself.

Missed runs

When the app starts or your computer wakes, Desktop checks whether each task missed any runs in the last seven days. If it did, Desktop starts exactly one catch-up run for the most recently missed time and discards anything older. A daily task that missed six days runs once on wake. Desktop shows a notification when a catch-up run starts. Keep this in mind when writing prompts. A task scheduled for 9am might run at 11pm if your computer was asleep all day. If timing matters, add guardrails to the prompt itself, for example: “Only review today’s commits. If it’s after 5pm, skip the review and post a summary of what was missed.”

Permissions for scheduled tasks

Each task has its own permission mode, which you set when creating or editing the task. Allow rules from ~/.claude/settings.json also apply to scheduled task sessions. When a run is stalled on a permission prompt, find the run’s session and answer the prompt there. To avoid stalls, click Run now after creating a task, watch for permission prompts, and select “always allow” for each one. Future runs skip most of those prompts. You can review and revoke these approvals from the task’s detail page. If you select “always allow” on a file edit in the task’s folder, only that session moves to Accept edits, so set the task’s permission mode to Accept edits. MCP tools marked requiresUserInteraction prompt on every call and don’t offer an always-allow option. Runs that call these tools stall each time.

Manage scheduled tasks

In the Code tab, click Scheduled in the sidebar, then click a task in the list to open its detail page. From here you can:
  • Run now: start the task immediately without waiting for the next scheduled time
  • Status: toggle between Active and Paused to pause or resume scheduled runs without deleting the task
  • Edit: change the instructions, schedule, folder, or other settings
  • Review history: see every past run, including skipped runs. Hover a skipped entry to see why: your computer was asleep, the previous run was still in progress, or other scheduled tasks were already running. Click Show more to load older entries.
  • Review allowed permissions: see and revoke saved tool approvals for this task from the Always allowed panel
  • Delete: remove the task. The sessions the task created are archived, not deleted. The folder holding the task’s SKILL.md file stays on disk at ~/.claude/scheduled-tasks/<task-name>/, or at scheduled-tasks/<task-name>/ under CLAUDE_CONFIG_DIR if you set that variable. To remove that folder, delete it yourself.
You can also list, create, edit, and pause tasks by asking Claude in any Desktop session. For example, “pause my dependency-audit task” or “show me my scheduled tasks.” To delete a task, use the Delete button on its detail page. To let a task change its own schedule or prompt with the update_scheduled_task MCP tool, click Run now and approve the call each time. To edit a task’s prompt on disk, open ~/.claude/scheduled-tasks/<task-name>/SKILL.md (or under CLAUDE_CONFIG_DIR if set). The file uses YAML frontmatter for name and description, with the prompt as the body. Changes take effect on the next run. Schedule, folder, model, and enabled state are not in this file: change them through the Edit form or ask Claude.