You typed /schedule in Claude Code and it created a Routine. You opened Claude Code Desktop, clicked Routines, and got both a Local and a Cloud choice for the same button. You asked whether the meter is running, and the docs answered for one of those cases. This piece names the four primitives, maps each to what Anthropic has actually published about billing, and calls out where the current pages leave holes.
Verified on 26 August 2026. Where a claim cannot be traced to a primary source, I say so rather than guessing. Where the docs and the field disagree, I quote the docs and flag the field as anecdotal.
TL;DR
There are four primitives, not three. The scheduling page says "three ways" and then lists four in its comparison: Cloud, Desktop, session-scoped scheduled tasks, and /loop. /schedule is the command that creates cloud Routines, not a fifth mechanism. Desktop's Routines page contains a Local choice that creates a Desktop scheduled task and a Cloud choice that creates a cloud Routine.
Cloud Routines are the only ones with documented billing. The blog says routines "draw down subscription usage limits in the same way as interactive sessions." Daily routine-start caps: Pro 5, Max 15, Team and Enterprise 25. Once your cap is exhausted, organisations with usage credits enabled can continue at metered rates. Organisations without usage credits get subsequent runs rejected until the window resets. One-off "Run now" runs do not count against the daily cap but still draw from normal usage.
Desktop scheduled tasks run on your machine and cost, well, whatever local Claude Code costs. The Desktop page states plainly: "Scheduled tasks run on your machine." It does not state which plan tier is required, whether an API key is needed, whether the run consumes subscription usage, or how failures are billed. The general costs page says Claude Code charges by API-token consumption. Between those two, the documented answer for a Desktop scheduled task's billing is: not directly documented.
Session cron tasks and /loop live inside the current session. They stop when the session ends or after seven days, whichever comes first. Session cron uses CronCreate, CronList, and CronDelete, capped at 50 tasks per session. /loop is a bundled skill, minimum interval one minute, with a 25,000-byte cap on .claude/loop.md. Neither feature page publishes a billing rule beyond what the usage view shows after the fact.
The 7-day rule is the 7-day rule. The official scheduled-tasks page says recurring session tasks expire after seven days, fire one final time, and delete themselves, and fixed-interval loops run until stopped or seven days elapse. There is no three-day rule on the page I could find.
Failure billing is a gap. No feature page states whether a failed, timed-out, cancelled, or empty-output run is billed, whether it counts against the daily routine cap, or whether Anthropic retries automatically. The Routines page documents run status and transcripts, and that a green status means the session started and exited cleanly rather than that the task in the prompt succeeded.
Spend controls are organisation-level, not routine-level. The /usage view breaks down the heaviest /loop and scheduled tasks in v2.1.242 or later, but it is after-the-fact visibility. There is no per-routine budget, no pre-run cost quote, and no per-routine alert documented.
GitHub only, and not for Zero Data Retention orgs. Cloud Routines run on Claude Code on the web, which requires GitHub for cloned repos. ZDR organisations cannot use cloud features at all.
The four primitives
Anthropic's own scheduling page opens with "Claude Code offers three ways to schedule recurring or one-off work" and then presents a comparison with four columns. The internal contradiction is real and worth resolving before you pick one. Treat the mechanisms as four, and treat the "three ways" phrasing as a compression that has not caught up.
| Primitive | How you create it | Where it runs | Minimum interval | Documented billing? |
|---|---|---|---|---|
| Cloud Routine | /schedule in the CLI, Routines then Cloud in Desktop, or claude.ai/code/routines on the web | Anthropic-managed cloud VM | 1 hour | Yes. Draws from subscription usage; capped at 5, 15, or 25 automated runs per day depending on plan. |
| Desktop scheduled task | Routines then Local in Claude Code Desktop | Your machine, in the Desktop app | 1 minute | No feature-page billing statement. |
| Session cron task | Natural language in a live session, or CronCreate / CronList / CronDelete | Your current Claude Code session on your machine | 1 minute | No feature-page billing statement. |
/loop | /loop [interval] [prompt] inside a session | Your current Claude Code session on your machine | 1 minute (fixed-interval); optional self-paced | No feature-page billing statement. |
The /schedule command and cloud Routines are the same feature. The Desktop Routines page is a shared navigation label that gives you access to both a cloud Routine and a Desktop scheduled task, depending on which sub-option you pick. If you have been treating "routine" and "scheduled task" as synonyms, that is where the confusion starts.
Cloud Routines: the only primitive with an explicit billing contract
The Routines announcement, dated 14 April 2026, is the primary source for cloud-Routine billing. Two sentences carry most of the weight. First: "Routines run on Claude Code's web infrastructure, so nothing depends on your laptop being open." Second: routines "draw down subscription usage limits in the same way as interactive sessions."
That is the answer to the question "does my Claude subscription cover unattended runs?" for cloud Routines. Yes, at the subscription-usage level, subject to a daily count cap and to your plan's normal usage windows.
The numeric caps as published: Pro up to 5 automated runs per day, Max up to 15, Team and Enterprise up to 25. The current Routines docs page adds the failure mode when the cap is reached. Organisations with usage credits enabled continue at metered overage rates. Organisations without usage credits get further runs rejected until the daily window resets. A "Run now" manual run is treated as an interactive session, does not count against the daily cap, and still draws down normal subscription usage.
| Question | Documented answer for cloud Routines |
|---|---|
| Which plans are eligible? | Pro, Max, Team, Enterprise, with Claude Code on the web enabled. Free is not named. |
| Does the routine consume subscription usage? | Yes, the same way interactive sessions do. |
| What is the minimum recurring interval? | 1 hour. Higher-frequency cron expressions are rejected. |
| What happens when I hit the daily cap? | Metered overage if usage credits are enabled. Runs rejected otherwise, until the window resets. |
| Are failed or empty-output runs billed? | Not stated. The run list shows status and transcripts. A green status means the session ran cleanly, not that your prompt succeeded. |
| Is there a wall-clock or token ceiling per run? | Not published on the Routines page. |
| Can I set a per-routine budget? | No per-routine budget or pre-run cost quote is documented. |
| Is GitHub required? | Yes. Cloud Routines depend on Claude Code on the web, which is GitHub-only for cloned repos. |
| Can Zero Data Retention organisations use them? | No. Cloud session features are unavailable to ZDR orgs. |
Two things follow from this table that are worth saying out loud.
One, the daily count cap is a cap on routine starts, not on tokens. A cheap routine and an expensive routine each count as one. So if you burn your five Pro slots on cheap triage jobs, you have no automated slots left for the routine you actually cared about that day.
Two, "same way interactive sessions do" ties routines to your regular five-hour and weekly usage windows. A routine firing at 3am counts against the same pool that carries your morning session. If your weekly usage is already tight, adding hourly routines will make it tighter.
Desktop scheduled tasks: the docs are silent on billing
The Desktop scheduled tasks page is the primary source. The direct execution statement is: "Scheduled tasks run on your machine." The Desktop app must be open and the computer must be awake for a task to fire. There is a version prerequisite: local scheduled tasks are unavailable before Desktop version 1.1.5368.
Read the page top to bottom and you will find no line about plan tier, no line about API keys, no line about subscription usage, no line about API credits, and no line about per-run billing. The general costs page states that Claude Code charges by API-token consumption and that tokens count against plan or API usage for the same provider or account as regular sessions. Those two together permit two competing readings, and the docs pick neither for you: the Desktop task either runs against your subscription like a local Claude Code session, or it uses whatever API-token path your Desktop install is configured for. If your local install is authenticated with an Anthropic subscription, the sensible working assumption is the former. If it is authenticated with an API key, the sensible working assumption is the latter. Either way, the docs do not confirm.
| Question | Documented answer for Desktop scheduled tasks |
|---|---|
| Where does the task run? | On your machine, in the Desktop app. |
| Does the computer need to be awake? | Yes. Runs missed during sleep are skipped. |
| Are missed runs caught up? | On wake or startup, the app checks missed runs from the last seven days, starts one catch-up for the most recently missed time, and discards older missed runs. |
| What is the minimum interval? | 1 minute. The app checks schedules every minute. |
| What is the plan requirement? | Not stated on this page. |
| Does the task consume subscription usage? | Not stated on this page. |
| Is there a retry policy? | Not stated on this page. Runs may be skipped if the previous run is still in progress. |
| What is the lifetime of a recurring task? | Not stated on this page. One-time tasks disable after firing. |
If you need a defensible answer to the "does my subscription cover this?" question for a Desktop scheduled task before you ship it to a team, ask Anthropic Support and get the answer in writing. Do not repeat second-hand claims that Desktop scheduled tasks are free, and do not repeat claims that they require API billing. Neither has a page you can cite.
Session cron and /loop: the current-session primitives
The scheduling page treats these two as separate categories from cloud and Desktop, and it is right to. Both live inside your current Claude Code session on your machine. Neither survives across sessions. Neither has a feature-page billing statement.
Session cron tasks are the natural-language scheduler and the underlying CronCreate, CronList, and CronDelete tools. A session can hold up to 50 tasks. Minimum interval is one minute. A due prompt fires between turns, so if Claude is busy it waits for idle, and missed fires are not replayed one-for-one. Recurring session tasks expire after 7 days, fire one final time, then delete themselves. That seven-day rule is the one you want to remember, because it is the rule people keep misquoting as three.
/loop is a bundled skill invoked as /loop [interval] [prompt]. Both the interval and the prompt are optional. Without an interval, Claude self-paces where the runtime supports it. Without a prompt, it runs a maintenance check or reads .claude/loop.md, and content beyond 25,000 bytes in that file is truncated. Fixed-interval loops run until you stop them or seven days elapse.
| Question | Session cron | /loop |
|---|---|---|
| Where does it run? | Your machine, current session. | Your machine, current session. |
| Does it survive across sessions? | No. Ends when the session ends. | No. Ends when the session ends. |
| Cap on tasks or loops? | 50 per session. | None published; seven-day lifetime applies to fixed-interval loops. |
| What happens if a fire is missed? | Busy tasks wait for idle. Missed fires are not caught up. | If an iteration does not reschedule itself or stop, Claude creates a fallback wakeup about 20 minutes later. If that also does not reschedule, the loop ends. |
| Documented billing rule? | None on the feature page. | None on the feature page. |
| Where can I see cost after the fact? | /usage in Claude Code v2.1.242 or later shows the heaviest scheduled tasks with fire count, total tokens, and per-run tokens. | /usage shows the heaviest /loop runs on the same view. |
The /usage figures are approximate and computed from local session history. They exclude activity from other devices and from claude.ai. If you need an authoritative total for a session cron or a /loop run, you have to reconcile with the account-level usage view separately.
What the meter actually looks like across the four
| Cost question | Cloud Routine | Desktop scheduled task | Session cron | /loop |
|---|---|---|---|---|
| Is it covered by an Anthropic subscription? | Yes, explicitly. | Not stated. | Not stated. | Not stated. |
| What is the enforced cap? | Daily routine-start cap: 5, 15, or 25 by plan. | None published. | 50 tasks per session. | None published for start counts. |
| Can it run over your cap on usage credits? | Yes, if the org has usage credits enabled. | Not stated. | Not stated. | Not stated. |
| What surfaces before the run? | Configuration UI. No projected cost. | Configuration UI. No projected cost. | Task list via CronList. No projected cost. | None. Interval and prompt only. |
| What surfaces after the run? | Run list with status, transcript, and links. | Local run history. | /usage rows in v2.1.242 or later. | /usage rows in v2.1.242 or later. |
| What triggers count? | Automated runs against the cap; "Run now" does not. | Not stated. | Not stated. | Not stated. |
Cloud Routines are the only row where you can plan a monthly budget from the docs alone. For the other three, the honest posture is to run a small experiment, watch /usage afterwards, and derive your own rate.
Where the docs disagree with the field
The GitHub issue tracker is a useful sanity check for anyone claiming these features are settled. On the same day I verified this piece:
Issue #89136, "Cowork/Desktop: filter the scheduled-tasks left panel by run location (Desktop-only / Cloud-only / All)," was open and requested UI filtering by run location. That is a maintainer-visible acknowledgement that Desktop and Cloud are separate execution locations sharing one navigation surface. Treat it as evidence of the taxonomy problem the docs already describe, not as evidence that the split is going away.
Issue #89219, a cloud-routine "Run now" stall report, was closed the same day as a duplicate of a startup bug. Read that as evidence that cloud Routines are actively being iterated in research preview, not as authoritative policy on failure billing.
Issue #89213 reported that Linux Desktop local scheduled tasks did not auto-fire, with dispatch blocked by "VM not supported (linux/x64)." Manual "Run now" worked. This is a build-specific implementation bug and does not tell you anything general about local billing.
Treat issue-tracker evidence as ANECDOTAL for the purposes of feature policy. It establishes what users reported and what maintainers acknowledged. It does not establish billing rules or entitlement. Use the official pages for those questions and quote them by name.
What the internet gets wrong
| Common claim | What the sources actually support |
|---|---|
| "Claude Code has three ways to schedule work." | The scheduling page uses that sentence, then compares four rows. Read four: cloud Routines, Desktop scheduled tasks, session cron, and /loop. |
| "Routines are free because they draw from your subscription." | They draw from subscription usage like interactive sessions do. That is not free. Your five-hour and weekly usage windows still apply, and metered overage kicks in on usage credits. |
| "Session cron tasks expire after three days." | The official page says seven days, fires one final time, then deletes itself. |
| "Desktop scheduled tasks use API-token billing." | Not stated on the feature page. The general costs page describes API-token consumption for Claude Code broadly. Do not claim either subscription-covered or API-metered for local tasks without a citation. |
"/schedule and /loop are the same primitive." | /schedule creates a cloud Routine. /loop is a bundled session skill that runs on your machine and dies with the session. |
| "Failed cloud runs do not count against your cap." | Not stated on the Routines page. Only the exclusion for one-off "Run now" runs is documented explicitly. |
| "You can set a per-routine budget in the admin console." | Not documented. Anthropic publishes organisation-level, workspace-level, and cloud-provider spend controls. No per-routine budget appears in the Routines or admin-setup pages. |
| "Every account gets metered overage after the cap." | Only organisations with usage credits enabled continue at metered rates. Others get further runs rejected until the daily window resets. |
| "Cloud Routines work with GitLab and Bitbucket too." | Cloud sessions are GitHub-only. ZDR organisations cannot use cloud features at all. |
What I do to keep spend predictable
Flagged as first-hand judgement rather than a general rule.
I do the paid scheduling in the cloud and keep the local scheduling short-lived on purpose. That maps to what the docs actually document, which is where my confidence sits.
For anything that needs to run overnight or while I am off the machine, I use a cloud Routine. Subscription usage is the covered path Anthropic has committed to in writing, so I can predict what the daily cadence costs me by counting routine starts against my plan cap. I keep the cadence at daily or slower unless the routine pays for itself in avoided work.
For anything that needs to iterate against a live session, I use /loop or a session cron task and let it die when I close the terminal. That is the correct shape for these primitives, since neither survives the session, and it stops me quietly leaking token spend on a schedule I forgot about.
For Desktop scheduled tasks I stay conservative. The docs do not tell me who is paying, so I do not put anything on that schedule that would cost real money if it ran a hundred times unexpectedly. If Anthropic later publishes a plan-tier and billing statement for Desktop scheduled tasks, that changes. Until then, I treat them as a convenience for cheap prompts, not a fleet manager.
Adjacent posts on this site
If you are landing here from a broader question about Claude Code cost, Claude Code pricing in 2026 is the piece on how autonomous credits and subscription limits interact.
If you are here because you want to steer cloud work from a phone, Claude Code remote control is the piece on --remote-control and the mobile hand-off.
If Auto mode is your first exposure to Claude taking actions on its own, Claude Code Auto mode explained is the piece on what the classifier decides and where it does not.
Frequently asked questions
- Can I schedule tasks in Claude Code on the cloud?
- Yes, through cloud Routines. Create one with `/schedule` in the CLI, at claude.ai/code/routines on the web, or in Claude Code Desktop by choosing `Routines` then `Cloud`. Cloud Routines run on Anthropic-managed infrastructure so nothing depends on your laptop being open. They draw from subscription usage the same way interactive sessions do, and are capped at 5 automated runs per day on Pro, 15 on Max, and 25 on Team and Enterprise. Minimum recurring interval is one hour. Free plan is not named as eligible. If you need more frequent than hourly, or you need runs to happen inside a live local session, use a session cron task or `/loop` instead, both of which run on your machine while the session is open.
- What is the difference between a Claude Routine and a scheduled task?
- A cloud Routine is a saved Claude Code automation that runs on Anthropic-managed cloud infrastructure. A Desktop scheduled task runs on your own machine inside the Claude Code Desktop app. A session cron task runs inside your current Claude Code session and stops when the session ends or after seven days. `/loop` is a bundled session skill that repeats a prompt on an interval inside the current session. Anthropic's Desktop UI uses a shared `Routines` navigation label for both cloud Routines and Desktop scheduled tasks, which is where most of the confusion starts. `/schedule` is the CLI command for cloud Routines specifically, not a fifth mechanism.
- Do Claude Code scheduled tasks use my subscription or API credits?
- Cloud Routines explicitly draw from subscription usage the same way interactive sessions do, with metered overage on usage credits if your organisation has them enabled. For Desktop scheduled tasks, the feature page does not state a plan tier, subscription rule, or API-credit requirement. The general costs page says Claude Code charges by API-token consumption and that tokens count against plan or API usage for the same provider or account as regular sessions. So the working answer for a Desktop scheduled task is: whichever authentication path your local Claude Code install uses. If you signed in with an Anthropic subscription, the schedule runs against that. If you configured an API key, it runs against that. Session cron tasks and `/loop` run inside your current local Claude Code session, so they use whichever billing path that session already uses.
- How many Claude Code scheduled tasks can I run per day?
- For cloud Routines, the automated-run daily cap is 5 on Pro, 15 on Max, and 25 on Team and Enterprise, as published in the 14 April 2026 Routines announcement. Manual `Run now` runs do not count against the cap but still draw from normal subscription usage. When the cap is reached, organisations with usage credits enabled continue at metered rates; organisations without them get further runs rejected until the window resets. For Desktop scheduled tasks, session cron tasks, and `/loop`, the feature pages do not publish per-day caps, though session cron is capped at 50 tasks per session and recurring session tasks expire after seven days.
- Do failed cloud Routine runs cost me tokens?
- Not directly documented. The Routines page describes the run list and transcript view: a green status means the session started and exited without an infrastructure error, and blocked network requests, missing connector tools, or task-level failures surface in the run details rather than always in the top-line status. The page does not state whether a failed, timed-out, cancelled, or empty-output run is billed, whether it counts against the daily routine cap beyond the documented exclusion for one-off runs, or whether Anthropic retries automatically. Treat those as gaps. Design routines so they exit early on obvious failure signals, and monitor run history rather than assuming a green tick means the prompt succeeded.
- Where do Claude Code session cron tasks expire?
- Seven days for recurring session tasks. The scheduled-tasks page says recurring session tasks expire after seven days, fire one final time, then delete themselves. The same page says fixed-interval `/loop` runs continue until you stop them or seven days elapse. There is no three-day rule on the current page. A session can hold up to 50 scheduled tasks. Missed fires are not caught up; if Claude is busy when a due task fires, the task waits until the current turn ends.
- Does the Desktop scheduled task run when my computer is asleep?
- No. The Desktop scheduled tasks page says scheduled tasks run on your machine, the app must be open, and the computer must be awake for the task to fire. If a scheduled run is missed because the computer was asleep, it is skipped. On wake or startup, the app checks missed runs from the last seven days, starts one catch-up run for the most recently missed time, and discards older missed runs. Runs may also be skipped if the previous run of the same task is still in progress. If you need runs that survive a closed laptop, use a cloud Routine.
- Can I set a per-routine budget or spending alert?
- No, not in the documented Anthropic surface. Spend controls are documented at organisation, workspace, and cloud-provider level. Teams and Enterprise admin settings expose organisation spend limits and rate limits. Console workspace limits and cloud budget controls apply to third-party clouds. No per-routine budget, per-run token ceiling, or projected-spend preview is documented on the Routines or admin-setup pages. The `/usage` view shows after-the-fact rows for the heaviest scheduled tasks and `/loop` runs from v2.1.242 onwards, but that is visibility, not a cap. If you need routine-level caps today, encode them in the prompt itself: cap tool calls, cap iterations, and exit early on cost signals.
- Can I run cloud Routines against a GitLab or Bitbucket repo?
- No. Cloud Routines depend on Claude Code on the web, which is documented as GitHub-only for cloned repos. GitLab, Bitbucket, and other Git hosts are not supported for cloud sessions. Zero Data Retention organisations cannot use cloud session features at all, so cloud Routines are unavailable there. If your team is on a supported host, local Desktop scheduled tasks, session cron, and `/loop` are the alternatives, at the cost of losing the closed-laptop property.
- How do I see what my scheduled tasks are costing me?
- Open `/usage` in Claude Code. On version 2.1.242 or later it shows plan usage bars, activity statistics, and rows for the heaviest `/loop` and other scheduled tasks with fire frequency, run count, total tokens, per-run tokens, and last-run time. You can switch the view between the last 24 hours and the last 7 days. The figures are approximate and computed from local session history, so activity from other devices and from claude.ai is excluded. For cloud Routines specifically, cross-check against your account usage view, since a routine that ran overnight on Anthropic's infrastructure will not necessarily appear in local session history.
The question every scheduling explainer dodges
Most posts on Claude Code scheduling stop at the taxonomy. They tell you Routines run in the cloud and /loop runs in your session, and then they stop, leaving you to work out the meter yourself.
The meter is the whole question. Cloud Routines are the only primitive where Anthropic has published a plan tier, a daily cap, and a subscription-usage statement you can plan a budget from. Desktop scheduled tasks, session cron, and /loop are three separate features with no feature-page billing statement between them, and the general costs page only says that Claude Code charges by API-token consumption in whichever provider or account your session already uses.
So the question worth asking is: which primitive am I authorising, and against which account?
For cloud Routines, the answer is your Anthropic subscription and, if enabled, your usage credits. For the other three, the honest answer is whichever billing path your local Claude Code install is authenticated for, and you have to know that before you schedule anything you would be unhappy to see run a hundred times.
What I built for this
anvil is a set of Claude Code skills that treat context as a budget rather than a scratchpad. The discipline applies here too: a scheduled task is a context file that runs itself on a timer, so the default answer to "should this be scheduled?" is no unless the routine pays for itself in avoided work.
docs/FILE_CONTRACT.md is the written version of that budget discipline. §1 is the load-bearing part.
Start by doing this
2 mins: Open code.claude.com/docs/en/scheduled-tasks and read the sentence about the four rows in the comparison. Then count them. That is the ground truth about how many primitives there are.
5 mins: In Claude Code, run /schedule and create a cloud Routine that runs once tomorrow at a time you will remember. Note that this is a scheduled routine, that it draws from your subscription usage, and that its start counts against your plan's daily cap. Watch the run in the Routines UI once it fires.
10 mins: Open /usage in Claude Code v2.1.242 or later, switch to the 7-day view, and look for the scheduled-task and /loop rows. If any exist, you have historical data. If they do not, run a one-minute /loop in a scratch session with a cheap prompt, let it fire twice, and check /usage again to see how the row is shaped before you rely on it for a real routine.