← Back to Hub Tool Reference
⏰

Scheduled Agents

Deploy Claude agents that run autonomously on a cron schedule β€” daily reports, weekly cleanups, recurring analyses β€” with no human trigger needed.

Cron Autonomous Background Recurring

🧠 What It Is

Scheduled Agents let you set Claude tasks on autopilot. Instead of manually triggering a prompt every Monday, you schedule an agent to run on a cron expression β€” it wakes up, does its work (browsing the web, reading files, querying APIs, generating documents), and delivers the result wherever you need it.

Each scheduled agent is a complete Claude session with its own system prompt, tools, memory access, and output destination. You define it once and it runs forever β€” or until you pause or delete it.

⏱️ Common Cron Schedules

0 9 * * 1-5
Weekday mornings
9am Mon–Fri β€” daily briefings, standup summaries
0 17 * * 5
Friday 5pm
End-of-week reports, metrics roundups
0 0 1 * *
1st of month
Monthly invoices, billing summaries
*/30 * * * *
Every 30 min
Health checks, queue monitoring, alerts
0 8 * * 1
Monday 8am
Weekly sprint planning briefing, OKR review
0 2 * * *
2am daily
Nightly data cleanup, DB optimization runs
Cache tip: For scheduled agents with large system prompts that don't change between runs, use prompt caching. A 10K-token briefing document cached at 10% cost saves ~90% on every nightly execution.

πŸ› οΈ 5 Real-World Examples

Example 01

Daily Revenue Briefing

Every morning at 7am, the agent queries your analytics API, formats a clean revenue summary with trends, and posts it to the #revenue Slack channel β€” before the team starts their day.

Schedule definitionname: daily-revenue-briefing cron: "0 7 * * 1-5" task: | Query analytics API for yesterday's revenue, user signups, and top conversion sources. Compare to last 7-day average. Post a formatted summary to #revenue in Slack. Flag any metric that dropped more than 15%.
Example 02

Weekly Dependency Audit

Every Monday, the agent runs npm audit and checks for outdated packages, then opens a GitHub PR with the safe updates applied β€” no developer action needed for routine bumps.

Schedule definitionname: weekly-dependency-audit cron: "0 6 * * 1" task: | Run `npm audit` and `npm outdated` in the repo. Apply all non-breaking patch and minor updates. Open a GitHub PR titled "chore: weekly dependency updates" with a summary of what changed and any vulnerabilities fixed.
Example 03

Competitor Pricing Monitor

Every Tuesday and Friday, the agent checks competitor websites for pricing changes, compares to the last snapshot, and alerts the team if anything significant shifted.

Schedule definitionname: competitor-pricing-monitor cron: "0 10 * * 2,5" task: | Visit competitor pricing pages (list in context). Compare current prices to last saved snapshot. If any price changed by 10%+ or new plans were added, send email alert to pricing@company.com with a diff summary.
Example 04

Nightly Test Failure Summary

At 11pm every day, the agent reads CI logs from the last 24 hours, identifies failing tests with patterns, and posts a prioritized fix list to the engineering Slack channel.

Schedule definitionname: nightly-ci-digest cron: "0 23 * * *" task: | Fetch GitHub Actions logs for all failed runs in last 24h. Group failures by test file and error type. Identify which failures are flaky vs consistent. Post prioritized fix list to #engineering-alerts.
Example 05

Monthly Customer Health Report

On the 1st of every month, the agent pulls customer data from CRM and usage analytics, generates a segmented health report PDF, and emails it to the customer success team.

Schedule definitionname: monthly-customer-health cron: "0 8 1 * *" task: | Pull last month's data: active users, feature adoption, NPS scores. Segment by plan tier (free/pro/enterprise). Identify at-risk accounts (usage drop 30%+ or NPS < 6). Generate PDF report and email to customer-success@company.com.
⏰ Scheduled Agent Manager interactive
Cowork β€” Scheduled Agent Manager
Manage, run, and monitor your scheduled agents.
$ _
$
Pro tip: Start every scheduled agent prompt with "Today is {date}." β€” this prevents Claude from relying on stale context about time. Also include the delivery destination (Slack channel, email, file path) so Claude always knows where to send its output.