Wiki · Start here

Scheduled tasks (cron)

A morning brief, a nightly check, hourly monitoring — delivered where you chat with the agent.

✅ Verified 15. 10. 2026Source: official documentation →📋 Copy for your AI
⏰
Anything done over and over should do itself. A summary arrives in the morning, a check runs at night, a website is watched every hour. The result lands where you chat with the agent — usually Telegram or Discord. Nothing is scheduled silently: you always confirm a job before it is created.

What you can schedule

JobHow oftenWhat it gives you
Morning briefdaily at 7:30A short message: what happened in your field, what is urgent, what today holds
Website checkevery hourSpeaks up only when the site stops answering — silent otherwise
News collectionevery 2 hoursNew articles from the feeds you care about
Post-deploy checkonceVerifies the change really went live
Monthly summary1st of the monthWhat was done, what it cost, what is next
Nightly tidy-upevery night at 3:00Triage the task queue or prepare material for the morning

Three ways to create a job

  1. Say it in the conversation. The easiest route — it works even if you have never heard of scheduled jobs:
    ❯ Every weekday at eight in the morning send me a summary of AI news. ❯ Every hour check that our website responds, and only write to me if there is a problem.
    The agent asks for the details and creates the job.
  2. With an explicit schedule. One line when you know what you want:
    # inside a chat $ /cron add "every 2h" "Check the server and write to me only if something is wrong." # from the command line $ hermes cron create "every 1d at 09:00" "Send me today's plan and three priorities."
  3. From a ready-made blueprint. Common tasks have templates — fill in a few fields and you never touch a schedule format:
    $ /blueprint morning-brief
    Available blueprints include a morning brief, uptime monitoring, news collection, deploy verification, dependency security audits and nightly backlog triage.

How schedules are written

NotationMeaning
every 5m / every 2hevery 5 minutes / every 2 hours
every 1d at 09:00once a day at 9:00
every 1d at 07:30once a day at half past seven
in words: "every weekday at eight"works too — the agent translates it

Times are evaluated in the server's time zone. If the server runs on your local time (the usual setup), "morning" means exactly what you expect.

Where the result goes

To wherever you chat with the agent — Telegram, Discord or another connected platform. If a job has nowhere to deliver, it still runs but the output is lost; the job reports that as a delivery failure, so you can spot it in the job list.

A job can also stay silent. When the agent decides there is nothing to report (all is well), it answers with [SILENT] instead of a message and nothing is sent. That is why prompts like "write to me only if there is a problem" work so well.

What must hold for it to work

ConditionWhy, and what to do
The gateway must be runningThe scheduler is part of it and checks every minute what is due. With the gateway down, jobs do not fire — check hermes cron status
The prompt must be self-containedEvery run starts with a clean head: the job sees neither your conversations nor previous runs. It cannot refer to "what we discussed yesterday" — put everything it needs into the prompt
There must be model creditA job consumes the model just like a normal conversation (see choosing a model)
The server must be awakeWith the machine off, nothing runs. The agent notices missed runs and can catch up, but the missed time is gone

Useful commands

CommandWhat it does
hermes cron listLists every job with how its last run went
hermes cron statusTells you whether the scheduler is alive and when the next run is
hermes cron doctorChecks the jobs and reports problems (undelivered output, repeated failures)
hermes pause and hermes resumeEmergency stop for all jobs, and starting them again
/cron inside a chatReview and manage jobs without leaving the conversation

Tips from experience

TipWhy
Give jobs a cheap modelThey run often and unattended, so the cost adds up. Set cron.model to send them to a cheaper model than the one you chat with
Write specific promptsWhat to check, from where, who it goes to, how long it should be. "Make a summary" turns out differently every time
Short message, long output as a fileA few sentences suit a phone; have a table attached as a file instead
Let the job stay silent when all is wellAlerts that always arrive stop being read — which is worse than none
Check on it occasionallyhermes cron list shows whether the job really runs and what it sends
Nothing irreversible unattendedA job runs while you are away. Deletions, payments or messaging people belong behind manual approval

When it does not work

SymptomCause and what to do
Nothing arrivedStart with hermes cron status — is the scheduler alive? Then hermes cron list to see whether the job is paused and how the last run went
The run happened but no message cameThe job has nowhere to deliver (platform not connected) or the send failed. The list reports it as a delivery failure
It fires too often or at the wrong timeCheck the schedule notation and the server's time zone
The job mixes up contextThe prompt refers to a conversation or a previous run that the job cannot see. Add every needed detail to the prompt
I want it to stopPause or delete one job in /cron; hermes pause stops all of them at once

Where next

← Back to the wiki