# Claude routines: Claude Code's scheduled tasks, setup and limits

> Claude Code routines, now called scheduled tasks: run a prompt on your repos on a schedule, a GitHub event or an API call, with connectors, limits and /loop.

Updated 2026-11-02 · https://upsy.ai/guides/claude-code/routines

## Short answer

A routine is a saved Claude Code prompt that runs on its own in Anthropic's cloud, on a schedule, when something happens on GitHub, or when you call its URL. In late October 2026 Anthropic renamed routines to **scheduled tasks**. Create one with `/schedule` in the CLI, under **Scheduled** in the desktop app's Code tab, or at claude.ai/code/routines. It needs a Pro, Max, Ultra, Team or Enterprise plan and a claude.ai login, and runs count against your plan's usage. For a prompt that repeats inside the session you have open, use `/loop`.

## Routines are now scheduled tasks

Claude Code's docs now call them scheduled tasks, "formerly routines" ([Claude Code docs](https://code.claude.com/docs/en/routines)). The old name stays in a few places: the claude.ai/code/routines address, the `/routines` command, which still works, the `/fire` API, and the admin setting "Scheduled tasks (Was Routines)". This page says routines for the cloud ones, to keep them apart from the two other ways to schedule:

| | Routines (cloud scheduled tasks) | Desktop scheduled tasks | `/loop` |
|---|---|---|---|
| Runs on | Anthropic's cloud, with a fresh clone of your repos | Your computer, in the Claude desktop app | Your open Claude Code session |
| Computer asleep | Runs anyway | Skipped; one catch-up run when it wakes | Doesn't run |
| Starts on | A schedule, a GitHub event or an API call | A schedule | An interval |
| Reaches | Repos, claude.ai connectors | Your local files, tools and MCP servers | Whatever the session can |
| Lasts | Until you turn it off | Until you turn it off | 7 days at most |

## Create a routine

All three ways save to the same account:

- **CLI:** run `/schedule` with what and when, such as `/schedule daily PR review at 9am` or `/schedule in 2 weeks, remove the old feature flag`.
- **Desktop app:** open the Code tab, then **Scheduled**.
- **Web:** go to [claude.ai/code/routines](https://claude.ai/code/routines), where the **Templates** tab has examples.

A routine holds a prompt, one or more repositories, the connectors it may use, a cloud environment, and a model and effort level. Write the prompt as instructions for a run nobody watches: what to check, what to change, where to report.

## Triggers

| Trigger | How it works |
|---|---|
| Schedule | Hourly, daily or weekly, a custom cron (at most hourly; UTC unless you set `CRON_TZ=`), or once at a set time. New schedules start a few minutes past the hour, since runs on the hour can start late |
| GitHub | A pull request, release or issue event, with filters for pull requests. Needs the Claude GitHub App |
| API | A POST to the routine's `/fire` URL with its own bearer token. An optional `text` field, up to 65,536 characters, reaches the run as untrusted input. Set up on the web only |


## Plans and limits

Routines come with Pro, Max, Ultra, Team and Enterprise, and need a claude.ai login. With an API key, Amazon Bedrock or Google Vertex, `/schedule` doesn't appear. Team and Enterprise owners can turn routines off.

Runs count against your subscription like interactive sessions. Instead of the daily run caps from launch, Anthropic now sets hourly ones ([Claude Code docs](https://code.claude.com/docs/en/routines)):

| Limit | Per hour |
|---|---|
| Scheduled runs, per account | 100 |
| Runs of one routine (Run now, API calls and one-off runs together) | 30 |
| Run now, per account | 100 |
| API calls, per account | 100 |

Extra usage lets runs continue past your plan's limit. Each run gets about 4 CPUs, 16 GB of memory and 30 GB of disk ([cloud environments](https://code.claude.com/docs/en/cloud-environments)).

## Connectors and MCP servers in routines

A routine can use the connectors on your claude.ai account, including custom ones you added at [claude.ai/customize/connectors](https://claude.ai/customize/connectors). All of them are included by default, with their write tools; remove the ones a routine doesn't need. Calls go through Anthropic, and anything a routine does shows up as you: commits, Slack posts and emails come from your accounts.

Servers you added with `claude mcp add` stay on your computer and don't reach routines. To use one, add it at claude.ai as a custom connector. A `.mcp.json` committed to the repo also loads, but a server there that needs an interactive sign-in can't complete it in an unattended run.

For API keys a run needs, use the environment's network secrets, which a proxy adds to requests so Claude never sees the value. Plain environment variables are visible to anyone who uses the environment.

## What a routine may do on its own

Runs start in auto mode, where a classifier blocks risky actions. A run pauses for you when it hits an ask rule, or after 3 blocked actions in a row or 20 in total; open the run to answer it. The routine's prompt can't approve anything on your behalf. If your organization set a connector tool to ask, it asks in routines too ([MCP docs](https://code.claude.com/docs/en/mcp)).

## Desktop scheduled tasks

The desktop app's local tasks run on your computer with your files, tools and local MCP servers ([desktop docs](https://code.claude.com/docs/en/desktop-scheduled-tasks)):

- They run only while the app is open and the computer is awake. On waking, the app runs one catch-up for the latest missed run in the past 7 days.
- **Keep computer awake** in settings helps, but closing the lid still sleeps it.
- Each task has its own permission mode. In Manual, a run waits until you approve; **Always allow** saves an approval for later runs.
- The prompt lives in `~/.claude/scheduled-tasks/<name>/SKILL.md`.

## /loop

`/loop` repeats a prompt or skill inside the session you have open ([scheduled tasks docs](https://code.claude.com/docs/en/scheduled-tasks)):

```
/loop 5m check whether the deploy finished and tell me
```

- With an interval, such as `10m`, `2h` or `1d`, it runs on that schedule. Without one, Claude picks the pace, from a minute to an hour.
- A bare `/loop` runs a built-in maintenance prompt, or `.claude/loop.md` if your repo has one.
- It runs only while Claude Code is open and idle, and doesn't catch up on missed runs. A session holds up to 50 loops, and repeating ones end after 7 days.
- Press Esc to stop a self-paced loop; ask Claude to cancel one with an interval. `CLAUDE_CODE_DISABLE_CRON=1` turns loops off.

## Ideas for routines

- **Morning triage:** "Every weekday at 8, read new Sentry issues, open a draft PR for any with an obvious fix, and post the list to #eng."
- **PR review:** on every pull request opened, "Review for security and missing tests; comment on the PR."
- **Dependency upkeep:** "Every Monday, update minor dependency versions, run the tests, and open a PR if they pass."
- **Release notes:** on every GitHub release, "Write customer-facing release notes from the merged PRs and post them to #releases."
- **From your own tools:** call the `/fire` URL from an alert with the alert text, and have the routine investigate and report.

## Why a routine didn't run

### `/schedule` doesn't exist

You're logged in with an API key, Bedrock or Vertex, or your organization turned routines off. Log in with your claude.ai account.

### A scheduled run didn't start

The routine's page shows a banner with the reason. If its GitHub connection is gone, runs are skipped for up to 72 hours, then the routine turns off; reconnect GitHub and turn it back on.

### A run is paused

The classifier blocked actions, or a tool needed an approval. Open the run, answer it, and adjust the prompt or the connectors so the next run doesn't need you.

### A connector is missing in the run

It was added with `claude mcp add`. Add it at claude.ai/customize/connectors instead.

### The run says Succeeded, but the work failed

A run reports Succeeded when it finishes, not when the task worked. Read the transcript, and have the prompt report failures where you'll see them.

## With Upsy

To give routines your Gmail, Google Calendar, Slack and other apps, add Upsy at claude.ai as a [custom connector](/guides/claude/custom-connector), not only with `claude mcp add`. Every routine can then use it:

- **Several accounts:** up to five Gmail accounts and five Slack workspaces in one connector.
- **Read-only that holds:** a routine runs in auto mode with no one watching. With Read-only access in Upsy, no run can send or delete, whatever the classifier decides.
- **History and alerts:** every email and message a routine reads or sends is logged in Upsy, and Upsy emails you if one assistant sends 20 or more messages in 10 minutes.

A claude.ai connector shows up in Upsy as Claude, with Claude's access, so routines share it with Claude's chats and [scheduled tasks](/guides/claude/scheduled-tasks). Your local sessions use the access you gave [Claude Code](/guides/claude-code).

## FAQ

### Are Claude routines and scheduled tasks the same thing?

Yes. In late October 2026, Anthropic renamed Claude Code's routines to scheduled tasks. The old URL and the `/routines` command still work.

### How much do Claude Code routines cost?

Nothing extra. Runs come out of your Pro, Max, Ultra, Team or Enterprise usage, like any session, with extra usage past the limit.

### How often can a routine run?

At most hourly on a schedule. A single routine can run up to 30 times an hour, counting Run now and API calls.

### Do routines run when my computer is off?

Yes. Routines run in Anthropic's cloud. Desktop scheduled tasks and `/loop` need your computer awake and the app open.

### Can routines use MCP servers?

Yes: the connectors on your claude.ai account, including custom ones, and servers in a repo's `.mcp.json`. Servers added only with `claude mcp add` aren't available.

---

Upsy connects personal AI assistants (Muse, Grok, ChatGPT, Claude, Cursor, Claude Code, Codex, Devin) to your Gmail, Google Calendar, Google Drive, Slack, Notion and other apps through one MCP server, with a shared memory, files and a cloud browser signed in to your sites. You choose what each assistant may do in each app, see everything it did, and turn it off in one click. Upsy is free. To add Upsy to an assistant, add a remote MCP server (Streamable HTTP) named Upsy at https://upsy.ai/connect. It signs in with OAuth; there is no API key.
