◉CLAUDE LABJP
●CODE 2.1.319 — Claude Code now moves MCP tasks to the background automatically, and a denyInsteadOfPrompting setting denies calls that would wait on a prompt●CONSOLE — Console IP allowlist is in beta (11/5): requests from addresses not on the list are refused●SONNET 4.5 — Retires on the Claude API on 11/30, 23 days left. Migrate to Sonnet 5.5●WINDOWS — Reports say hooks break silently only on Japanese-locale Windows; check the character encoding first●FAST — Opus 4.8 fast mode is deprecated and will be removed on 11/30. Migrate to Opus 5.5●NEW — I Put a Ten-Line Promise File at the To…●CODE 2.1.319 — Claude Code now moves MCP tasks to the background automatically, and a denyInsteadOfPrompting setting denies calls that would wait on a prompt●CONSOLE — Console IP allowlist is in beta (11/5): requests from addresses not on the list are refused●SONNET 4.5 — Retires on the Claude API on 11/30, 23 days left. Migrate to Sonnet 5.5●WINDOWS — Reports say hooks break silently only on Japanese-locale Windows; check the character encoding first●FAST — Opus 4.8 fast mode is deprecated and will be removed on 11/30. Migrate to Opus 5.5●NEW — I Put a Ten-Line Promise File at the To…
Articles/Cowork
◈ Cowork/2026-09-24Intermediate

Will Your Cowork Scheduled Task Still Run Next Saturday?

A definition that runs once and stops, two fire times packed into one task, a weekday that quietly emptied after an edit. Cowork schedules can go missing without leaving a single log line. Here is a working audit that compares what you defined with what you meant.

Cowork62Scheduled Tasks19cron4Operations24Troubleshooting25

✦ Premium Article

One Saturday morning, a single output that should have been waiting for me simply was not there. No error notification. The task list showed a neat column of green "enabled" toggles.

The cause was a small edit I had made myself earlier that week. I had two tasks taking turns on weekend work for two sites, and I moved one of them onto the same day as the other because it looked tidier. After that, nothing covered Sunday at all.

Nothing was broken. The schedule was simply missing a piece. As an indie developer who keeps adding unattended jobs, this is the kind of gap that costs me the most time.

You cannot find a task that never ran by reading run logs

The first thing I'd like to say plainly: this kind of gap does not show up in run logs.

A failed task leaves a log. A late task leaves some trace. A task that never fired writes nothing at all. The more carefully you read the logs, the more convinced you become that everything is fine.

I have written before about counting runs from the outside to catch gaps after the fact, in Half of My Scheduled Runs Vanished Without a Single Error. That approach catches a gap the day after it happens.

This piece is about the step before that. Read the task definitions themselves, and find where they disagree with your intent before anything runs.

Three ways my schedules went missing

Looking back over the last few months, every gap I hit fell into one of three shapes.

ShapeHow it looked in the listWhat actually happened
One-off definitionEnabled, next run shownA task I meant to repeat showed "One-time:" in its schedule field, ran once, and then disabled itself
Two fire times in one taskEnabled, cron looked correctI wrote 30 4,16 * * * to classify wallpaper categories morning and evening; in my environment only one of the two fired
A weekday emptied by an editEverything enabledI moved one of two alternating tasks onto the other's day, and nothing was left to cover Sunday

The wallpaper category job now runs as two separate tasks, one for the morning slot and one for the evening slot. Giving each slot its own name means I can see at a glance when only one of them is moving.

What the three have in common is that the list looked healthy every time. The toggles were on. The cron strings had no typos. What was missing was the information about what I expected — and that lives nowhere in the task definitions.

✦

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
✦You will be able to surface one-off definitions, double-slot crons, and uncovered weekdays in a few minutes, using a ledger and a short script instead of staring at the task list
✦You will be able to check which weekdays a cron edit is about to remove before you save it, so silent gaps are stopped at edit time rather than discovered on a missing Saturday
✦You will be able to leave a reason next to every disabled task, so that months later you can decide whether it is safe to turn back on without guessing
Secure payment via Stripe · Cancel anytime
✦

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • ✦Copy-paste ready implementation code
  • ✦New advanced guides published daily
  • ✦$5/mo or $10 for lifetime access
View Membership →

Related Articles

◈ Cowork2026-10-18
I Preloaded a Scheduled Task with head -150: 15.6 KB Read, 3.3 KB for Today
A scheduled task preloaded its daily notes with head -150, and line count turned out to be no budget at all. A date-block reader with a byte ceiling, and how to avoid dropping ideas nobody has used yet.
◈ Cowork2026-10-17
When a Scheduled Task Keeps Saying SUCCEEDED but Produces Nothing, Check Outbound Traffic in the First Minute
The run history is green, but the output file is still yesterday's. A short probe and a freshness check that tell you in the first minute whether outbound calls are being refused with a 403 on CONNECT.
◈ Cowork2026-10-01
Before You Trim a Scheduled Task's Runbook, Count How Many Times It Gets Re-read
I cut 13 KB from a scheduled task's preloaded docs, and recounted by re-reads it was worth about 1.3 tool calls. Here is the ledger that counts re-reads, and a shell helper that records bytes during a run.