← All Guides
beginner 30 minutes

Scheduling Claude to Do Your Repetitive Work

claude-codeclaude-desktop
Guide: Scheduling Claude to Do Your Repetitive Work

You check the same three things every morning: email for anything urgent, news for your industry, calendar to figure out what needs prep. Twenty minutes, on autopilot — which is exactly why you keep doing it, because it doesn’t feel like a problem.

But it is one. Twenty minutes of low-value repetition, five days a week, is nearly two hours gone before you’ve done any real work. And the worst part: it’s the kind of work Claude is genuinely good at. Scanning, filtering, summarizing, flagging things that need attention. The pattern-matching grunt work that humans tolerate and AI thrives on.

Claude Desktop has a feature called Scheduled Tasks. You write a prompt, pick a time, and Claude runs it automatically — every morning, every Friday, every hour if you want. The results are ready when you open the app.

Before you start

You’ll need Claude Desktop (the installed app, not the web version — Scheduled Tasks don’t exist there), Claude Code for writing and testing your skill, and a task you actually repeat. If you haven’t set up Claude Code yet, start with the CLAUDE.md setup guide first.

Step 1: Find the repetition

Open a blank document or notes app. Write down what you did in the first thirty minutes of your last three workdays. Not what you should have done — what you actually did.

Look for anything that shows up more than once. Common patterns:

  • Morning scan — checking email, Slack, news, calendar
  • Status check — looking at project dashboards, open tasks, team updates
  • Content routine — scanning for industry news, drafting social posts
  • Weekly prep — pulling together meeting agendas, progress summaries
  • Maintenance — checking for software updates, reviewing reports or logs

You’re looking for tasks where the steps are the same even if the content changes. “Check email and flag anything that needs a reply” is the same steps every time — only the emails change. That’s what makes it automatable.

Don’t start with your most complex workflow. Pick something simple with clear inputs and outputs. “Summarize my unread email” is a better first task than “process my entire inbox, file attachments, create follow-up tasks, and update my CRM.”

Step 2: Write it as a prompt

Before you build a skill file, test your task as a regular prompt. Open a Claude Code session and type what you’d want done, as if you were explaining it to a capable assistant on their first day.

Good prompt:

Check my calendar for today using AppleScript. For each meeting,
tell me who it's with, when it starts, and what I should prepare
based on the meeting title. Flag anything in the next 2 hours.

Bad prompt:

Do my morning routine.

The difference is specificity. Claude can’t read your mind about what “morning routine” means, but it can absolutely check a calendar and summarize what it finds.

Run your prompt a few times across different days. Tweak it until the output is consistently useful. Pay attention to:

  • What it gets wrong — add constraints. “Only check the ‘Work’ calendar, ignore ‘Birthdays’.”
  • What it misses — add steps. “Also check if any meetings were added since yesterday.”
  • What’s unnecessary — remove noise. If it gives you a paragraph per meeting when a line would do, say so.

This iterative testing is the valuable part. A scheduled task is only as good as the prompt driving it.

Step 3: Turn it into a skill

Once your prompt works reliably, save it as a skill file so Claude can find and run it by name.

Create a file at ~/.claude/skills/your-task-name/SKILL.md. First, create the directory:

mkdir -p ~/.claude/skills/meeting-prep

Then create ~/.claude/skills/meeting-prep/SKILL.md and write it with YAML frontmatter and your tested prompt as the body:

---
name: meeting-prep
description: Check today's calendar and prepare context for upcoming meetings.
user-invocable: true
---

Check my calendar for today using AppleScript. Only look at the "Work"
calendar.

For each meeting:
1. Show the time, title, and attendees
2. Note if it's recurring or new
3. Flag anything in the next 2 hours as "PREP NOW"
4. For meetings with external people, search my notes folder
   for any previous interactions with that person

Output as a clean table. If there are no meetings today, say so
and skip the rest.

The user-invocable: true line is optional — if you use it, you can run the skill manually with /meeting-prep in any Claude Code session. If you skip it, the skill still works when called from a scheduled task. Either way, test it:

/meeting-prep

If it works as a manual skill, it’ll work as a scheduled task.

Step 4: Schedule it

Open Claude Desktop and find the Scheduled Tasks option — it’s in the sidebar or under a menu depending on your version. Create a new task.

Fill in the fields:

FieldWhat to enter
Namemeeting-prep (or whatever you called your skill)
DescriptionOne line — “Prep for today’s meetings”
PromptRun /meeting-prep — or paste the full prompt from your skill
FolderThe folder where you keep your work, or your home folder
FrequencyDaily, weekdays, weekly — pick what matches your task
TimeWhen you want it to run
Permission modeStart with the least-restrictive option (the one that auto-approves tool use)

Run it manually to test. Watch what happens — if Claude asks for permission to run AppleScript or access files, approve each one. This trains the permission set so future scheduled runs don’t stall waiting for you.

Once it runs cleanly, you’re done. Tomorrow morning, the results will be in Claude Desktop before you’ve poured your coffee.

Three tasks to steal

If you’re not sure where to begin, these three cover the most common repetitive patterns. Each one is a complete skill you can copy, modify, and schedule.

1. Morning email summary

---
name: email-summary
description: Summarize unread emails and flag anything that needs a reply today.
user-invocable: true
---

Check for unread emails. For each one, give me:
- Who it's from
- One-line summary of what they want
- Whether it needs a reply (yes/no/FYI only)

Group them: replies needed first, FYI second, newsletters last.
Skip promotional emails entirely.

Schedule: Weekdays, 7:30am. Review when you sit down.

2. Industry news scan

---
name: news-scan
description: Search for relevant industry news and surface the top stories.
user-invocable: true
---

Search for news in the last 24 hours about [YOUR INDUSTRY/TOPICS].

For each story worth knowing about:
- Headline and source
- Two-sentence summary
- Why it matters to someone in [YOUR ROLE]

Skip press releases, product launches from companies I don't use,
and anything paywalled. I want 3-5 stories maximum, not a firehose.

If nothing significant happened, say "Quiet day" and stop.

Schedule: Weekdays, 8:00am. Skim before your first meeting.

3. Friday week-in-review

---
name: week-review
description: Summarize what I worked on this week from my notes and files.
user-invocable: true
---

Look at files I modified in the last 7 days. Check my documents,
notes, and any project folders for recent activity.

Summarize:
- What I spent the most time on
- What got finished
- What's still in progress
- Anything that's been sitting untouched for over a week

Write it as a short personal recap — something I could read in
two minutes on Friday afternoon to remember what actually happened
this week. Keep it under 200 words.

Schedule: Friday, 4:00pm. Read it before you close out for the weekend.

A few things that will trip you up

Your laptop has to be open. Scheduled tasks run on your machine through Claude Desktop — there’s no cloud component. If your laptop is closed at the scheduled time, the task runs when it wakes up, but only once. A daily task that missed three days runs once on wake, not three times.

Every run costs tokens. A scheduled task is a full Claude session. Simple tasks (email scan, calendar check) cost very little. Complex multi-step workflows cost more. Start with one or two tasks and check your usage before adding more.

Have Claude draft, not send. If your task produces something that goes public — social posts, reports, emails — tell Claude to save a draft rather than send it. Add “save as draft, do not publish” to the prompt. Review the output, then publish yourself. Automation handles the prep; you handle anything that leaves your machine.

Approve everything on the first run. If Claude needs a tool it hasn’t been approved for, the scheduled run pauses until you approve it. Always use “Run now” to test first and approve everything manually. Future runs remember those approvals.

One task first. See if the output is actually useful before building a fleet of ten scheduled tasks. The goal is less repetition, not more automation for its own sake.