Back to Article List

Schedule recurring tasks with Hermes Agent cron

Schedule recurring tasks with Hermes Agent cron

In my opinion, one of the more underused Hermes Agent features is built-in scheduling. Your agent can run prompts on a schedule without you typing anything. Morning briefing at 7 a.m. Weekly digest at Friday 5 p.m. A health check every hour. The mechanism is a cron-style scheduler baked into Hermes itself, so you don't need to wire up system cron or write any shell scripts.

I run three scheduled jobs on my personal agent and the cognitive offload is real. The morning email summary catches me up before I've finished coffee. The Friday wind-down asks the agent what's still on my plate going into the weekend. The Sunday backup task rotates skills to my git remote. None of those would happen reliably if I had to remember to trigger them manually.

How Hermes cron differs from system cron

System cron runs shell commands. Hermes cron runs prompts. That distinction matters more than it sounds.

A system cron job that "summarises my unread Gmail" needs you to write a Python script that auths to Gmail, parses messages, formats output, sends an email. A Hermes scheduled prompt that "summarise my unread Gmail and email me the summary" just runs the prompt; the agent figures out the rest using its existing tools and skills.

Same trade-off applies in reverse. System cron is more reliable for tasks that genuinely don't need agent reasoning (rotating logs, restarting services). Hermes cron is the right answer when the task involves judgement: what's important in this inbox, which open issues should I follow up on, what's worth summarising from yesterday.

Adding a scheduled task

The CLI command:

hermes cron add "morning-briefing" \
  --schedule "0 7 * * *" \
  --prompt "summarise overnight email in three bullets, then email the summary to me"

Breakdown:

  • "morning-briefing": name (your choice, used for management commands)
  • --schedule: standard cron expression
  • --prompt: what to send to the agent at each scheduled run

The job is now registered. Hermes runs it at the next scheduled time using whatever persona, tools and skills your active profile has configured.

Cron expression reminders

Standard five-field cron, in case it's been a while:

FieldRangeExample
Minute0-590 = top of hour
Hour0-237 = 7 a.m.
Day of month1-311 = first of month
Month1-12* = every month
Day of week0-6, 0=Sunday5 = Friday

Useful patterns:

  • 0 7 * * *: every day at 7 a.m.
  • 0 17 * * 5: every Friday at 5 p.m.
  • */30 * * * *: every 30 minutes
  • 0 9 1 * *: first of every month at 9 a.m.
  • 0 */6 * * *: every six hours

If cron expressions hurt your brain, crontab.guru is the reference site to keep open in a tab.

Real examples from my install

Morning briefing

hermes cron add "morning-brief" \
  --schedule "0 7 * * 1-5" \
  --prompt "Read overnight unread Gmail. Group by sender. Pick the 5 most important. Send me a Telegram message with: senders, one-line summary each, and any direct asks. Mark the rest as read."

Weekdays only (1-5 in the day-of-week field). Telegram is my preferred output channel because I read it before email. The "mark the rest as read" bit happens because the agent has Gmail tool access.

Friday wind-down

hermes cron add "friday-winddown" \
  --schedule "0 17 * * 5" \
  --prompt "What's still on my plate? Check my todos, my open GitHub issues, my recent messages. Group by 'this weekend' vs 'next week'. Send me a Telegram message."

Same idea, different shape. Output is the same Telegram channel; consistent delivery makes the routine stick.

Sunday skill rotation

hermes cron add "skill-backup" \
  --schedule "0 22 * * 0" \
  --prompt "Commit the contents of ~/.hermes/skills to my hermes-skills git repo with a dated commit message. Push to origin."

This one's pure automation; no judgement needed. Could be a system cron job too. But keeping it inside Hermes means I can change the schedule from inside the agent chat ("change the skill backup to every Wednesday") without editing crontab files.

Listing, pausing and removing jobs

hermes cron list
hermes cron pause morning-brief
hermes cron resume morning-brief
hermes cron remove friday-winddown

Pause stops the scheduled trigger without deleting the job. Useful when you go on holiday and don't want the morning brief filling your phone.

Where scheduled jobs fail (and what to do about it)

Scheduled prompts fail more silently than interactive prompts. You're not watching. The agent might error, retry, give up and you don't know until Wednesday when you realise you haven't had a morning brief since Friday.

Enable per-job failure notifications

hermes cron add "morning-brief" \
  --schedule "0 7 * * *" \
  --prompt "..." \
  --on-failure-notify telegram

If the job fails three times in a row, Hermes pings you on the channel you specified. Telegram is the right output for "something broke" notifications because it cuts through.

Check the cron log

tail -50 ~/.hermes/logs/cron.log
hermes cron history morning-brief --last 7

The log shows each scheduled trigger, the result and any error. The history command shows the last N runs of a specific job; useful for "did this run at all yesterday".

Common failure modes

The biggest is provider rate limits hitting at unfortunate times. If your 7 a.m. brief runs right as the rest of your gateway is also waking up, you can 429. Mitigation: add 429 to your fallback statuses (see our Hermes 429 rate limit fix) or stagger your cron jobs.

Second is the agent making a wrong tool call when you're not watching to correct it. The "send me a Telegram message" instruction is robust because the agent has done it many times. Vague instructions like "summarise the day" can produce wildly varied output depending on what the agent decided "summarise" meant this time. Be specific.

Costs of scheduled jobs

Each scheduled run costs whatever the underlying prompt costs. A morning brief that reads 30 emails and produces a summary might be 5,000 tokens. At Sonnet pricing, that's a few cents. Times daily = a dollar a month. Cheap if useful.

Where it gets expensive is jobs that run too frequently (every 5 minutes, every hour) without a real reason. Resist the temptation to run "check on my todos" every 30 minutes. Once a day is almost always enough.

If you want to see your scheduled jobs' contribution to spend separately:

hermes usage --by-cron-job --since "30 days ago"

Cost tracking generally lives in our Hermes cost tracking piece.

Cron + Tailscale + a phone notification

The setup I recommend to anyone running Hermes on a VPS:

  • Hermes Agent on a Linux VPS with the cron jobs configured
  • Tailscale on the laptop and phone (see our Tailscale remote access piece)
  • Telegram bot configured as the output channel for cron job notifications

The morning brief lands on your phone via Telegram before you've left the house. The agent doesn't need your laptop to be on. The phone doesn't need to be connected to your home wifi. It just works.

When to use system cron instead

Tasks that don't need agent reasoning: log rotation, certificate renewal, gateway restart timers (see our gateway memory leak fix), backup scripts. These belong in system cron because they're simple shell commands that should run regardless of if the agent is working.

The rule of thumb: if the task could be a 5-line bash script, use system cron. If it needs the agent to think, use Hermes cron.

Multi-step scheduled tasks

One scheduled job can have a multi-step prompt:

hermes cron add "monday-planning" \
  --schedule "0 8 * * 1" \
  --prompt "First, summarise last week's GitHub commits across my main repos. Then check my calendar for this week, flag any meetings without an agenda. Finally, suggest the three highest-impact things to focus on this week based on what's open. Send all three as separate Telegram messages."

The agent runs each step in sequence, using the appropriate tool for each. This is where Hermes cron earns its keep over system cron.

Hosting cron-driven Hermes on a VPS

Scheduled tasks need the gateway to be running 24/7. WSL2 on a laptop isn't the right host for this (see our WSL2 gateway disconnecting piece for why). A Linux VPS is. The LumaDock Hermes Agent template ships with the gateway under systemd ready for cron jobs to fire reliably. Unmetered bandwidth and no setup fees, which matters for cron jobs that make outbound API calls regularly. Full setup walkthrough in our Hermes Agent complete guide.

Your idea deserves better hosting

24/7 support 30-day money-back guarantee Cancel anytime
Faktureras

1 GB RAM VPS

€3.44 Save  25 %
€2.58 Månadsvis
  • 1 vCPU AMD EPYC
  • 30 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning

2 GB RAM VPS

€5.17 Save  17 %
€4.30 Månadsvis
  • 2 vCPU AMD EPYC
  • 30 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning

6 GB RAM VPS

€12.93 Save  33 %
€8.62 Månadsvis
  • 6 vCPU AMD EPYC
  • 70 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning

AMD EPYC VPS.P1

€6.89 Save  25 %
€5.17 Månadsvis
  • 2 vCPU AMD EPYC
  • 4 GB RAM-minne
  • 40 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Automatisk backup ingår
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning

AMD EPYC VPS.P2

€12.93 Save  27 %
€9.48 Månadsvis
  • 2 vCPU AMD EPYC
  • 8 GB RAM-minne
  • 80 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Automatisk backup ingår
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning

AMD EPYC VPS.P4

€25.87 Save  20 %
€20.69 Månadsvis
  • 4 vCPU AMD EPYC
  • 16 GB RAM-minne
  • 160 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Automatisk backup ingår
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning

AMD EPYC VPS.P5

€31.47 Save  21 %
€25.00 Månadsvis
  • 8 vCPU AMD EPYC
  • 16 GB RAM-minne
  • 180 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Automatisk backup ingår
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning

AMD EPYC VPS.P6

€49.16 Save  21 %
€38.81 Månadsvis
  • 8 vCPU AMD EPYC
  • 32 GB RAM-minne
  • 200 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Automatisk backup ingår
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning

AMD EPYC VPS.P7

€60.37 Save  20 %
€48.29 Månadsvis
  • 16 vCPU AMD EPYC
  • 32 GB RAM-minne
  • 240 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Automatisk backup ingår
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning

EPYC Genoa VPS.G1

€4.30 Save  20 %
€3.44 Månadsvis
  • 1 vCPU AMD EPYC Gen4 AMD EPYC Genoa 4:e generation 9xx4 med 3,25 GHz eller liknande, baserad på Zen 4-arkitekturen.
  • 1 GB DDR5 RAM-minne
  • 25 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Automatisk backup ingår
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning
Beställ nu Upptagen - Tillgänglig

EPYC Genoa VPS.G2

€11.20 Save  23 %
€8.62 Månadsvis
  • 2 vCPU AMD EPYC Gen4 AMD EPYC Genoa 4:e generation 9xx4 med 3,25 GHz eller liknande, baserad på Zen 4-arkitekturen.
  • 4 GB DDR5 RAM-minne
  • 50 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Automatisk backup ingår
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning
Beställ nu Upptagen - Tillgänglig

EPYC Genoa VPS.G4

€22.42 Save  27 %
€16.38 Månadsvis
  • 4 vCPU AMD EPYC Gen4 AMD EPYC Genoa 4:e generation 9xx4 med 3,25 GHz eller liknande, baserad på Zen 4-arkitekturen.
  • 8 GB DDR5 RAM-minne
  • 100 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Automatisk backup ingår
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning
Beställ nu Upptagen - Tillgänglig

EPYC Genoa VPS.G6

€42.25 Save  31 %
€29.32 Månadsvis
  • 8 vCPU AMD EPYC Gen4 AMD EPYC Genoa 4:e generation 9xx4 med 3,25 GHz eller liknande, baserad på Zen 4-arkitekturen.
  • 16 GB DDR5 RAM-minne
  • 200 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Automatisk backup ingår
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning
Beställ nu Upptagen - Tillgänglig

EPYC Genoa VPS.G7

€64.68 Save  27 %
€47.43 Månadsvis
  • 8 vCPU AMD EPYC Gen4 AMD EPYC Genoa 4:e generation 9xx4 med 3,25 GHz eller liknande, baserad på Zen 4-arkitekturen.
  • 32 GB DDR5 RAM-minne
  • 250 GB NVMe lagring
  • Obegränsad bandbredd
  • IPv4 och IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • 1 Gbps nätverk
  • Automatisk backup ingår
  • Hantering av brandvägg
  • Kostnadsfri serverövervakning
Beställ nu Upptagen - Tillgänglig

AMD Ryzen VPS.R1

€13.79 Save  31 %
€9.48 Månadsvis
  • 1 dedikerad CPU AMD Ryzen 9 7950X med 4,5 GHz eller liknande, på Zen 4-arkitektur. vCPU
  • 4 GB DDR5MINNE
  • 50 GB NVMeLAGRING
  • Omätt bandbredd
  • IPv4 & IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • Auto-backup ingår
Beställ nu Upptagen - Tillgänglig

AMD Ryzen VPS.R2

€24.14 Save  21 %
€18.97 Månadsvis
  • 2 dedikerade CPU AMD Ryzen 9 7950X med 4,5 GHz eller liknande, på Zen 4-arkitektur. vCPU
  • 8 GB DDR5MINNE
  • 100 GB NVMeLAGRING
  • Omätt bandbredd
  • IPv4 & IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • Auto-backup ingår
Beställ nu Upptagen - Tillgänglig

AMD Ryzen VPS.R4

€86.24 Save  20 %
€68.99 Månadsvis
  • 8 dedikerade CPU AMD Ryzen 9 7950X med 4,5 GHz eller liknande, på Zen 4-arkitektur. vCPU
  • 32 GB DDR5MINNE
  • 400 GB NVMeLAGRING
  • Omätt bandbredd
  • IPv4 & IPv6 ingår IPv6-stöd är för närvarande inte tillgängligt i Frankrike, Finland eller Nederländerna.
  • Auto-backup ingår
Beställ nu Upptagen - Tillgänglig

Questions?

What's the difference between Hermes cron and system cron?

System cron runs shell commands. Hermes cron runs agent prompts. Use Hermes cron when the task needs reasoning (summarising, deciding what's important). Use system cron for mechanical tasks (log rotation, restart timers).

Your agent runs wild. Your bill doesn't.

Easily deploy Hermes in one click on Ubuntu 24.04 with AMD EPYC, NVMe storage and unmetered bandwidth. The price stays the same whatever the agent does, no setup fees, no overage charges and no tier traps.

GPU products are in high demand at the moment. Fill the form to get notified as soon as your preferred GPU server is back in stock.