scheduler
Original:🇺🇸 English
Translated
Create, manage, and delete scheduled tasks (cron jobs) and configure heartbeat. Use when users ask for reminders, recurring tasks, daily summaries, periodic checks, or anything time-based. Also manages HEARTBEAT.md for periodic awareness checks.
1installs
Sourcenaohainezha/skill
Added on
NPX Install
npx skill4agent add naohainezha/skill schedulerTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Scheduler Skill
You can schedule tasks and manage periodic heartbeat checks.
Cron Jobs (Scheduled Tasks)
Use the CLI to manage scheduled tasks.
alma cronbash
# List all jobs
alma cron list
# Add a one-shot reminder (fires once then auto-deletes)
# Format: alma cron add <name> <at|every|cron> <schedule> [--mode main|isolated] [--prompt "..."] [--deliver-to CHAT_ID]
alma cron add "Meeting reminder" at "20m" --mode main --prompt "该开会了"
# Add a recurring task with cron expression
alma cron add "AI news digest" cron "0 9 * * *" --mode isolated --prompt "搜索并总结今天最重要的 AI 新闻,用中文,简洁明了" --deliver-to CHAT_ID
# Add an interval-based task
alma cron add "Check emails" every "2h" --mode isolated --prompt "检查有没有重要邮件" --deliver-to CHAT_ID
# Run a job immediately
alma cron run <job-id>
# View run history
alma cron history <job-id>
# Enable/disable
alma cron enable <job-id>
alma cron disable <job-id>
# Remove
alma cron remove <job-id>Command Format
alma cron add <name> <type> <schedule> [options]- :
<type>(one-shot),at(interval),every(cron expression)cron - : depends on type — "20m"/"2026-02-11T09:00:00" for at, "30m"/"2h" for every, "0 9 * * *" for cron
<schedule> - : main injects into existing thread, isolated creates temp thread (default: isolated)
--mode main|isolated - : the message/task for the AI to execute
--prompt "..." - : send result to Telegram (use user's chat ID from system context)
--deliver-to CHAT_ID - : which thread to inject into (for main mode)
--thread-id ID - : model override for this job
--model MODEL
Heartbeat (Periodic Awareness)
Heartbeat is a periodic check-in where you "wake up" and look for things that need attention.
Managing Heartbeat Config
bash
alma heartbeat status # Check if enabled and current config
alma heartbeat enable # Enable heartbeat
alma heartbeat disable # Disable heartbeat
alma heartbeat config --interval 30 --start 8 --end 23 --chat-id CHAT_IDManaging HEARTBEAT.md
The heartbeat reads from the workspace as your checklist. Edit it to change what you check on each heartbeat.
HEARTBEAT.mdFile location: in the active workspace root.
HEARTBEAT.mdExample:
markdown
# Heartbeat Checklist
- 检查有没有未处理的重要消息
- 如果用户超过 4 小时没互动,打个招呼
- 每天早上检查一次天气If nothing needs attention, respond with (this is suppressed, user won't see it).
HEARTBEAT_OKWhen to Use What
| User says | Action |
|---|---|
| "提醒我20分钟后开会" | |
| "每天早上9点给我总结AI新闻" | |
| "每小时检查一下邮件" | |
| "别再给我发心跳了" | |
| "心跳的时候顺便看看天气" | Edit HEARTBEAT.md, add weather check item |
| "取消那个每日新闻任务" | |
Important
- Always get the user's Telegram chat ID from the system prompt context for
--deliver-to - For isolated tasks that should send results to user, ALWAYS include
--deliver-to - Cron expressions use UTC unless otherwise noted — adjust for user's timezone
- One-shot jobs auto-delete after running
--at