Prerequisites
- Hermes Agent installed and configured (see macOS guide)
- A working model provider with valid API key (see model provider guide)
- A repeatable task you want to automate (ideas below)
- ~10 minutes for initial setup
Step 1: Identify a repeatable task
Any task you ask Hermes to do manually can be automated. The key is picking something that produces value on a recurring basis. Good candidates:
- Daily news brief: Summarize industry news relevant to your business each morning
- Weekly report: Aggregate project updates, metrics, or team activity into a digest
- Content monitor: Watch competitor websites or RSS feeds for changes and flag new developments
- Email digest: Summarize unread emails or Slack messages from the past day
- Data backup reminder: Check backup status and alert if anything is stale
- Invoice follow-ups: Scan for unpaid invoices and draft reminder messages
Start small. Pick one task, get it working reliably, then add more.
Step 2: Write a clear, testable prompt
The most important part of a scheduled automation is the prompt. It must be specific, self-contained, and produce consistent output without interactive follow-ups. Here's a good template:
You are running an automated daily task. No one is watching — be thorough and self-contained. Task: [WHAT TO DO] Guidelines: - [Constraint 1, e.g., keep under 300 words] - [Constraint 2, e.g., focus on Canadian SMBs] - [Constraint 3, e.g., list top 5 items only] Output format: [HOW TO STRUCTURE THE RESPONSE] Save the result to: [FILE PATH OR DESTINATION]
Test your prompt interactively first:
hermes > [paste your prompt here]
Iterate until the output matches what you want. A well-written prompt is the difference between a useful automation and a noisy one.
Step 3: Create the scheduled job
Use the hermes cron create command. The --schedule flag uses standard cron syntax:
# ┌───────── minute (0–59) # │ ┌───────── hour (0–23) # │ │ ┌───────── day of month (1–31) # │ │ │ ┌───────── month (1–12) # │ │ │ │ ┌───────── day of week (0–6, 0=Sunday) # │ │ │ │ │ # * * * * *
Create a daily morning news brief:
hermes cron create \ --name "daily-news-brief" \ --schedule "0 8 * * *" \ --prompt "Summarize today's top AI and automation news relevant to Canadian SMBs. Keep it under 300 words. Save to ~/Documents/hermes-briefs/$(date +%Y-%m-%d)-news.md"
Create a weekly report (every Monday at 9 AM):
hermes cron create \ --name "weekly-project-report" \ --schedule "0 9 * * 1" \ --prompt "Review the past week's project activity from the notes in ~/Projects/. Summarize progress, blockers, and next steps. Save to ~/Documents/hermes-briefs/weekly-report-$(date +%Y-%m-%d).md"
Create a content monitor (every 6 hours):
hermes cron create \ --name "competitor-monitor" \ --schedule "0 */6 * * *" \ --prompt "Check the following competitor websites for new blog posts or product updates: [URLs]. If anything new is found, save a summary to ~/Documents/hermes-briefs/competitor-updates.md. If nothing is new, do nothing."
Step 4: Test your job
Before trusting a scheduled job, test it manually to make sure it works as expected:
# List all scheduled jobs to find the job ID hermes cron list # Trigger a manual run of the job (replace JOB_ID with the actual ID) hermes cron run JOB_ID # Check the job's output and logs hermes cron logs JOB_ID
After a manual run succeeds, let the cron schedule take over. Monitor the first few automatic runs to confirm reliability.
Step 5: Monitor and maintain
Keep an eye on your scheduled jobs:
# List all jobs with their status and last run time hermes cron list # View recent run history hermes cron history # Check a specific job's details hermes cron info JOB_ID # Disable a job without deleting it hermes cron disable JOB_ID # Re-enable a disabled job hermes cron enable JOB_ID # Delete a job you no longer need hermes cron delete JOB_ID
Idempotency and reliability tips
Scheduled automations run unattended. Design them to be resilient:
- Make prompts idempotent: Running the same job twice should produce a useful result, not a duplicate mess. Use date-based filenames and conditional logic in your prompts.
- Set output paths carefully: Use dated filenames (e.g.,
report-2026-05-21.md) so each run produces a distinct file rather than overwriting the previous one. - Handle API failures gracefully: If your model provider is down, the job will fail. Hermes logs errors — check periodically that jobs are completing.
- Notification delivery: For critical automations, include a notification step in your prompt (e.g., "send a summary to me via Telegram"). See the Telegram gateway guide for messaging setup.
- Start with low frequency: Run jobs daily or weekly before scaling up to hourly. It's easier to catch issues when you're not drowning in output.
- Monitor costs: Scheduled jobs consume API tokens. A daily brief at ~$0.01/run costs pennies per month. A job running every 5 minutes can add up — check your provider's usage dashboard regularly.
Next steps
Once you have scheduled automations running reliably:
- Connect Telegram to receive automation results on your phone
- Secure your API keys — especially important for unattended jobs
- Chain automations: have one job's output become another job's input
- Explore more SMB workflow ideas