The Hermes agent cron job system is the most complete scheduler I've seen built into an open-source agent, and my verdict is 8.3 out of 10.
It loses points for the learning curve, not for missing features.
The latest docs closed the two gaps I'd have flagged a few months ago: a clean way to stop a run in flight, and a per-job policy for missed runs.
Want my team to tell you whether it fits your setup? Book a free SEO strategy session.
The Verdict In One Paragraph
Use it if you want an agent that does real work on a timetable and tells you honestly when it didn't.
The scheduler logs every attempt, separates "the work failed" from "the message didn't arrive", stops wedged runs without touching the schedule, and lets you decide per job whether a missed slot should run late or be skipped.
Skip it if you want a two-click scheduler with no config file.
Everything below is my editorial rating, built from the official Hermes cron documentation, not from a benchmark.
The Scorecard
| Criterion | Rating | Why, from the docs |
|---|---|---|
| Schedule formats | 9/10 | Delays, intervals, natural phrases, cron expressions and ISO timestamps, plus per-job time zones |
| Run control | 9/10 | Cancel stops one run, leaves the schedule alone and is booked as cancelled, not failed |
| Missed-run handling | 9/10 | Computed catch-up window, per-job grace minutes, on/off override and missed ×N ledger rows |
| Failure alerting | 9/10 | One alert per incident, timed reminders, acknowledgement and a three-strike nudge |
| Spend control | 9/10 | Preflight blocks bad configs before any model call; no-agent and wakeAgent skip the model entirely |
| Model control | 8/10 | Per-job pin, fleet default and per-job reasoning effort, but pinned jobs lose fallback |
| Delivery | 8/10 | More than 20 targets and honest delivery statuses, but some adapters only return unverified acks |
| Ease of learning | 5/10 | The settings overlap, and the cron doc page runs past 12,000 words |
The average of those eight rows rounds to 8.3.
Strength: Stopping A Run Without Breaking The Schedule
This is the update that moved my rating most.
Before, pause was the only lever, and pause only blocks future fires.
Now hermes cron cancel stops just the current run.
Per the cancel section, script jobs get their whole process tree terminated, and agent jobs are interrupted at the next checkpoint.
The run is booked as cancelled with a reason, sends no failure notice, and doesn't count toward the failure streak.
The Desktop gets a matching Stop button in the job header, which reads Stopping… and then confirms with a Run cancelled toast.
There's an API route and an agent action for it too.
That's three surfaces for one behaviour, all logged the same way.
Strength: Missed Runs Are A Policy, Not A Surprise
Most schedulers either fire everything they missed or silently skip it.
Hermes makes it a per-job choice.
The default catches up once after an outage, and a long gap collapses into a single run.
The catch-up window runs to 50% of the gap between fires, never under 2 minutes or over 2 hours, and --grace-minutes 0 means never catch up.
The Desktop editor offers the same choice in plain words: Use the default, Run once when back, Skip them.
What earns the 9 is visibility.
Every slot passed over is written as a missed ×N row, so you can see what was skipped and why.
Strength: Alerts That Don't Train You To Ignore Them
A job failing every hour with the same error used to mean a ping every hour.
Hermes now records each failure as an incident keyed to the error signature.
The first failure alerts, repeats are held back, and a reminder fires after failure_repeat_alert_hours, six by default.
A different error alerts straight away.
You can acknowledge an incident with hermes cron incidents ack, which silences that one signature only.
Add the nudge after three failed runs in a row, and the alerting design is the best part of the system.
🔥 Want the Hermes agent cron jobs I'd actually run, set up for you? Inside the AI Profit Boardroom you get step-by-step video trainings, the installable Agent OS, four coaching calls a week and 3,400+ members comparing scheduled-agent setups. → Join the AI Profit Boardroom
Strength: Jobs That Skip The Model When Nothing Changed
Three features stop scheduled work from burning tokens.
Preflight validation checks keys, skills, delivery targets and MCP servers first, and a broken job is marked blocked_config with one alert and zero model calls.
No-agent mode runs a script and delivers its output, with no model at all.
And a pre-check script can print {"wakeAgent": false} to skip the agent for that tick.
For a polling job every few minutes, that last one is the difference between cheap and wasteful.
Mixed Marks: Model Pins And Delivery
Model control gets an 8 because the design is clear but has a sharp edge.
At fire time Hermes resolves the model from the per-job pin, then cron.model, then the main chat model.
That fleet default is a smart touch: set it once and switching your chat model never moves your scheduled jobs.
Reasoning effort is a separate per-job pin, from none to ultra, and the docs deliberately keep it away from the agent so only you can change it.
The sharp edge is fallback.
A pinned job never walks the fallback_providers chain, so if its provider is down, the run fails.
That's the right call for consistency, but it's easy to miss, and it costs the row a point.
Delivery gets an 8 for a similar reason.
The delivery table lists more than 20 targets, from Telegram and Slack to email, SMS and a bot's own chat.
Execution and delivery are tracked separately, so a run that worked but never arrived shows delivery_failed, not a fake "ok".
The catch is that some adapters, Slack, Matrix and Mattermost among them, return a success without a message ID.
Hermes accepts those but flags the run as UNVERIFIED in hermes cron list and the doctor report.
Honest, but it means you can't always prove a message landed.
Output is also secret-redacted on the way out, which is a quiet but useful default for scheduled reports.
And jobs can be made continuable, so you can reply to a delivered brief and the agent still has it in context.
Limit: Cancel Is Not Undo
The docs say it plainly: a cancel stops the run, it doesn't roll it back.
If a job already posted, sent or wrote something, that stays done.
It's also a request, not an instant kill, picked up at the run's next cancel check.
For a script that's well under a second, but an agent turn stops at its next checkpoint.
That's a sensible design, and it's still a reason to start risky jobs paused.
Limit: Nothing Fires Without The Gateway
Agent jobs run inside the gateway, which ticks every 60 seconds.
If it's down, jobs wait.
Hermes is honest about this: hermes cron status marks any run more than 15 minutes late as OVERDUE, and the Desktop shows "Overdue since".
The doctor check exits 1 while a finding stands, so you can wire it to your own alerting.
If you'd rather drive it from a system crontab, hermes cron tick runs one scheduler pass and exits, but the gateway still has to be up for agent jobs.
Only script-only jobs run from a bare tick.
Still, an always-on host is a requirement, not a nice-to-have.
Limit: Too Many Overlapping Knobs
This is where the 5 comes from.
Missed runs alone involve cron.catch_up_missed, per-job --catch-up, --grace-minutes, a separate 120-second grace for one-shots and a hosted-only misfire_grace_minutes.
They interact: --catch-up on beats the grace, and the grace only applies to cron expressions.
Each rule makes sense on its own.
Together they need a careful read, which is why the Desktop's three plain options matter so much.
Limit: Every Run Starts With Amnesia
Each run is a fresh session with no memory of the last.
The docs' own advice is that the prompt must contain everything the agent needs.
continuity=true softens this by feeding in the job's previous output, and context_from chains one job's output into the next.
Those work well, but you have to know to turn them on.
Who Should Use Hermes Cron
- Operators who already run Hermes on a server or always-on machine.
- Anyone running recurring research, reports or monitoring that should report to Telegram, Slack, Discord or email.
- Teams who want an audit trail: the execution ledger in
executions.dbrecords every attempt. - People who want watchdogs that speak only when something is wrong.
- Builders chaining jobs into pipelines, collect then rank then publish, through
context_from. - Anyone serving several markets, since each job can pin its own time zone and keep its wall clock across daylight-saving changes.
Who Should Skip It For Now
- Anyone running Hermes only on a laptop that sleeps most of the day.
- Owners who want to schedule customer-facing sends without a review step.
- Users who won't read a config page; start with the Desktop editor or get help.
The automatic 5, 15 and 30-minute re-runs for fires that never reached the model landed in v0.22.0, so anyone on an older build is rating an older product.
Check the Hermes releases page before you judge it.
📞 Want a straight answer on whether to schedule it? Book a free SEO strategy session and my team will tell you which recurring jobs are worth handing to an agent. → Book the free session
Final Verdict: 8.3 Out Of 10
Hermes cron is production-grade scheduling with a steep first hour.
The stop control and the missed-run policy fix the two things I'd have complained about most.
The alerting design is the part I'd copy into any other agent.
The score would be a 9 with fewer overlapping settings.
For a single global stop there's hermes pause, which holds every scheduled fire until hermes resume and then lets due work catch up once.
Start with one job, created paused, and set its missed-run rule before you switch it on.
🔥 Skip the steep first hour Inside the AI Profit Boardroom you get the installable Agent OS, video trainings that walk through Hermes scheduling step by step, four coaching calls a week and 3,400+ members. → Join the AI Profit Boardroom
Also On Our Network
- 🌐 The seven-step operator setup, from gateway install to stopping a stuck run
- 🌐 Three small-business jobs to schedule, and the two safety rules to set first
- 🌐 Five prompts that make your agent schedule, stop and repair its own jobs
- 🌐 Which AI model to pin to each scheduled job, by real GoldieBench scores
- 🌐 The complete Hermes Agent Cron Job guide on the AI Profit Boardroom blog
FAQ: Hermes Agent Cron Job Verdict
What score does Hermes cron get in this review?
8.3 out of 10, the average of eight criteria rated from the official docs. Ease of learning is the weakest row at 5.
What is the biggest strength of Hermes cron?
Run control and alerting. A wedged run can be cancelled without touching the schedule, and repeated failures alert once per incident instead of every run.
What is the biggest weakness?
Overlapping settings, especially for missed runs. The Desktop editor's three plain choices make it much easier.
Does cancelling a run roll back its work?
No. The docs say a cancel stops the run but cannot undo side effects it already performed.
Is Hermes cron a good fit on a laptop?
Only for light use. Jobs need the gateway running, so anything important belongs on an always-on machine.
📺 Video notes + links to the tools 👉
🎥 Learn how I make these videos 👉
🆓 Get a FREE AI Course + Community + 1,000 AI Agents 👉
About Julian
I'm Julian Goldie, an SEO entrepreneur, author and founder of the AI Profit Boardroom, which has 3,400+ members.
I help business owners scale with AI agents, automation and SEO.
- I've built a 7-figure SEO and link building agency, Goldie Agency, with a team of 70+ SEO experts.
- I've grown a YouTube channel to 400,000+ subscribers.
- I wrote "Link Building Mastery".
- My Udemy courses have taught over 29,000 students.
→ Get my best AI training inside the AI Profit Boardroom
Set up one paused job and judge it yourself, or book a free strategy session and let my team tell you where a Hermes agent cron job fits.











