cron-task
Skill1 starsChanged 3 months agoMITView on GitHub
Use when the user wants a recurring task (daily summary, weekly report, hourly check), wants to be notified on a schedule (server health check, price alert, feed monitor), or says "run this every day", "schedule a task", "check this hourly", or "send me a daily summary".
In this repository58 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- api-test-suiteSkill
- ascii-artSkill
- caddy-reverse-proxySkill
- changelog-generatorSkill
- color-palette-generatorSkill
- csv-toolkitSkill
- discord-bot-buildSkill
- docker-umbrellaSkill
- dotfiles-manageSkill
- email-sendSkill
- env-config-managerSkill
- excalidraw-diagramSkill
- file-organizerSkill
- forgejo-self-hostSkill
- frontend-design-toolkitSkill
- generate-dockerfileSkill
- gif-searchSkill
- git-backupSkill
- github-actions-ciSkill
- hallmark-readmeSkill
- http-api-testerSkill
- invoice-generatorSkill
- json-formatterSkill
- log-analyzerSkill
- markdown-linterSkill
- markdown-to-pdfSkill
- markdown-to-slidesSkill
- mcp-server-buildSkill
- media-id-mappingSkill
- movie-catalogue-siteSkill
- movie-night-calendarSkill
- ntfy-notifierSkill
- ocr-documentsSkill
- ollama-localSkill
- openapi-generatorSkill
- password-generatorSkill
- pdf-extractSkill
- portfolio-upkeepSkill
- qr-code-generatorSkill
- regex-testerSkill
- resume-builderSkill
- rss-monitorSkill
- searxng-self-hostSkill
- skill-publishSkill
- skill-registry-catalogSkill
- skills-portfolio-scaffoldSkill
- snippet-managerSkill
- sqlite-dashboardSkill
- streaming-provider-embedsSkill
- tailscale-deploySkill
- telegram-bot-buildSkill
- tmdb-metadataSkill
- uptime-kuma-self-hostSkill
- watchlist-syncSkill
- webhook-receiverSkill
- youtube-transcriptSkill
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 17
Create scheduled tasks that run an agent or script on a recurring schedule and deliver results to a messaging platform (Telegram, Discord, …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
cron-task
Overview
Create scheduled tasks that run an agent or script on a recurring schedule and deliver results to a messaging platform (Telegram, Discord, Slack, email). The task runs autonomously — no human needs to be present.
When to Use
- The user wants a recurring task (daily summary, weekly report, hourly check).
- The user wants to be notified on a schedule (server health check, price alert, feed monitor).
- The user says "run this every day", "schedule a task", "check this hourly", or "send me a daily summary".
Schedule Syntax
Three formats are supported:
| Format | Example | Meaning |
| Duration | 30m, 2h, 6h | Every 30 min, 2 hours, 6 hours |
| Cron expression | 0 9 * * * | At 9:00 AM every day |
| ISO timestamp | 2026-07-20T09:00:00 | One-shot at a specific time |
Cron fields (5 fields, minute-level granularity):
┌───── minute (0-59)
│ ┌───── hour (0-23)
│ │ ┌───── day of month (1-31)
│ │ │ ┌───── month (1-12)
│ │ │ │ ┌───── day of week (0-6, Sunday=0)
0 9 * * * → every day at 9 AM
*/30 * * * * → every 30 minutes
0 9 * * 1 → every Monday at 9 AM
0 0 1 * * → first of every month at midnightTask Types
| Type | Description | Use case |
| Agent-driven | The agent runs a prompt on schedule | Summarize a feed, write a report, analyze data |
| Script-only | A script runs and its output is delivered | Server health check, log scan, metric threshold |
Agent-driven tasks: the scheduler runs the agent with the given prompt. The agent has tool access (web, terminal, file) and produces a response that gets delivered.
Script-only tasks: the scheduler runs a script (bash or Python). The script's stdout is delivered verbatim. No agent, no tokens, no model call. If the script produces no output, nothing is delivered (silent on no-news).
Delivery
Results are delivered to one or more messaging platforms:
| Platform | Delivery format |
| Telegram | Message to a chat or topic |
| Discord | Message to a channel or thread |
| Slack | Message to a channel |
| Plain-text or HTML email | |
| SMS | Short text message |
The delivery includes a header identifying the job, the content, and a footer. The message is not mirrored into the target session — it's a one-way delivery that preserves session integrity.
Workflow
Step 1: Define the task
Confirm with the user:
- What should the task do? (the prompt or script)
- How often? (the schedule)
- Where should results go? (the delivery target)
Step 2: Create the job
Via the Hermes CLI:
hermes cron create "0 9 * * *" --prompt "Check server health and report any issues" --deliver telegramVia the cronjob tool (in-session):
cronjob(action="create", schedule="0 9 * * *", prompt="Check server health and report any issues", deliver="telegram")Step 3: Script-only task (if no agent needed)
cronjob(
action="create",
schedule="*/30m",
script="scripts/health_check.py",
no_agent=True,
deliver="telegram"
)The script runs every 30 minutes. Non-empty stdout is delivered. Empty stdout = silent (nothing sent). Non-zero exit = error alert sent.
Step 4: Chain jobs (optional)
One job's output can feed into another:
cronjob(
action="create",
schedule="0 6 * * *",
prompt="Collect overnight metrics and summarize",
name="metrics-collector"
)
cronjob(
action="create",
schedule="0 9 * * *",
prompt="Write a daily briefing from the collected metrics",
context_from=["metrics-collector"],
deliver="telegram"
)The second job receives the first job's most recent output as context.
Step 5: Verify
hermes cron list # see all jobs
hermes cron run <id> # trigger immediately for testingCommon Patterns
| Pattern | Schedule | Type | Example |
| Daily briefing | 0 9 * * * | Agent | "Summarize overnight activity and news" |
| Hourly health check | 1h | Script | health_check.py — silent unless failure |
| Weekly report | 0 18 * * 5 | Agent | "Generate weekly metrics report" |
| Price alert | */30m | Script | price_check.py — silent unless threshold hit |
| Feed monitor | 1h | Agent | "Check the RSS feed for new entries, notify if any" |
Common Pitfalls
- Silent failures on bad output, not just bad exit codes. A script that crashes with a non-zero exit code sends an error alert. But a script that runs successfully and produces wrong output won't alert anyone. Test scripts manually before scheduling them.
- Hitting platform rate limits. A task running every minute that sends a message every time will hit Telegram's rate limit within an hour. Only deliver when there's something to say — use the silent-on-no-news pattern.
- Long-running tasks get killed. There's a 3-minute hard interrupt per run. If your prompt or script takes longer, it gets killed mid-run. Break long work into chunks or use a background process instead.
- Timezone confusion in cron expressions. Cron expressions run in the host's local timezone by default, not UTC and not the user's timezone. Confirm the timezone with the user if the schedule needs to land at an exact wall-clock time.
- Fighting the duplicate-tick lock. A lock file prevents duplicate runs across processes. Don't try to work around it — if a tick is locked, the previous run is still in progress, not stuck.
- Delivering to a misconfigured target. The delivery target must already be configured in the gateway. A target that doesn't exist fails silently — verify the platform/channel is reachable before scheduling, not after the first missed delivery.
- Context bloat in chained jobs.
context_frominjects the full output of the upstream job into the downstream prompt. If the upstream produces a large report, the downstream job's prompt gets inflated every run. Keep upstream outputs concise by design.
Verification Checklist
hermes cron run <id>was used to trigger the job once manually and confirmed it delivers correctly before relying on the schedule- Script-only jobs were tested standalone (
python scripts/health_check.py) to confirm stdout behavior on both success and failure - Delivery target (Telegram chat, Discord channel, etc.) is already configured in the gateway, not just assumed to exist
- Schedule's timezone matches what the user expects (confirmed, not assumed to be UTC or local)
hermes cron listshows the new job with the correct schedule string- Chained jobs' upstream output is short enough not to bloat the downstream prompt on every run
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

