← 返回 Skills 市场
fuzzyb33s

Fuzzy Cron Scheduler

作者 Fuzzyb33s · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
105
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install fuzzy-cron-scheduler
功能描述
Master OpenClaw cron scheduling for reliable background tasks, reminders, and recurring automation. Use when: (1) setting up periodic checks or heartbeats, (...
使用说明 (SKILL.md)

Cron Scheduler

Schedule one-shot or recurring background tasks with OpenClaw's cron system. Background tasks run silently without cluttering your main session — results come back as announcements or webhook pings.

Core Concepts

Schedule Types

Kind Use When Example
at One-shot at a specific time "remind me at 3pm"
every Fixed interval (ms-based) "every 5 minutes"
cron Unix-style recurring with timezone "9am every weekday"

Session Targets

Where the job runs and how results are delivered:

Target Who Runs It Best For
isolated (default for agentTurn) Fresh ephemeral session Most recurring tasks — clean, no context bleed
main (default for systemEvent) Your main conversation session System events, heartbeat checks that need session context
current Bound to where you are right now One-off tasks tied to a specific ongoing conversation
session:\x3Cname> A specific persistent session Long-running projects that need to accumulate state

Delivery Modes

Mode What Happens
announce (default) Result posted to the chat channel
webhook HTTP POST to a URL you specify
none Silent — task runs, no report

Recipes

Recipe 1: Periodic Heartbeat (every N minutes)

cron_add(
  name="Morning briefing",
  schedule={"kind": "every", "everyMs": 1800000},  // 30 min
  payload={
    "kind": "agentTurn",
    "message": "Check email, calendar, and any urgent notifications. Summarize what needs attention."
  },
  delivery={"mode": "announce"},
  sessionTarget="isolated"
)

Recipe 2: Daily Reminder (cron, specific time)

cron_add(
  name="Standup reminder",
  schedule={"kind": "cron", "expr": "0 9 * * 1-5", "tz": "Africa/Johannesburg"},
  payload={
    "kind": "agentTurn",
    "message": "It's standup time! Check the project tracker and note any blockers."
  },
  delivery={"mode": "announce"},
  sessionTarget="isolated"
)

Recipe 3: One-Shot Future Reminder

cron_add(
  name="Call reminder",
  schedule={"kind": "at", "at": "2026-04-15T14:00:00+02:00"},
  payload={
    "kind": "agentTurn",
    "message": "You have a call with the client in 15 minutes. Review notes in /workspace/call-prep.md"
  },
  delivery={"mode": "announce"},
  sessionTarget="isolated"
)

Recipe 4: Staggered Job Fan-Out

Avoid thundering-herd by staggering identical jobs:

cron_add(
  name="Data sync A",
  schedule={"kind": "cron", "expr": "0 */4 * * *", "tz": "UTC", "staggerMs": 0},
  payload={"kind": "agentTurn", "message": "Sync batch A — /workspace/data/a/*.csv"},
  sessionTarget="isolated"
)

cron_add(
  name="Data sync B",
  schedule={"kind": "cron", "expr": "0 */4 * * *", "tz": "UTC", "staggerMs": 300000},  // +5 min
  payload={"kind": "agentTurn", "message": "Sync batch B — /workspace/data/b/*.csv"},
  sessionTarget="isolated"
)

Recipe 5: Health Check with Webhook Alert

cron_add(
  name="Service health check",
  schedule={"kind": "every", "everyMs": 60000},  // every minute
  payload={
    "kind": "agentTurn",
    "message": "GET /health on your service. If status != 200, compose an alert payload and POST to https://your-webhook-handler.com/alert"
  },
  delivery={"mode": "webhook", "to": "https://your-webhook-handler.com/results"},
  sessionTarget="isolated",
  failureAlert={"after": 3, "mode": "announce", "cooldownMs": 300000}
)

Recipe 6: Batch Heartbeat Checks (main session)

Combine periodic checks into one heartbeat to save API calls:

cron_add(
  name="Morning pulse",
  schedule={"kind": "cron", "expr": "0 7 * * *", "tz": "Africa/Johannesburg"},
  payload={"kind": "systemEvent", "text": "Read HEARTBEAT.md if it exists. Check email, calendar, weather. If nothing needs attention reply HEARTBEAT_OK."},
  sessionTarget="main"
)

Recipe 7: Project-Scoped Persistent Session

cron_add(
  name="Weekly digest",
  schedule={"kind": "cron", "expr": "0 10 * * 5", "tz": "UTC"},
  payload={
    "kind": "agentTurn",
    "message": "Generate a weekly summary of /workspace/project-x/logs/. Include: tasks completed, blockers, and next steps."
  },
  sessionTarget="session:project-alpha-digest",
  delivery={"mode": "announce"}
)

Recipe 8: Reminder with Snooze Pattern

// Initial reminder
cron_add(
  name="Invoice due",
  schedule={"kind": "at", "at": "2026-04-20T09:00:00+02:00"},
  payload={"kind": "agentTurn", "message": "Invoice #1234 is due today. Draft a follow-up email if not paid. Save to /workspace/drafts/invoice-followup.md"},
  sessionTarget="isolated"
)

// Snooze — 24h later if unacknowledged (use failureAlert + snooze job)
)

Cron Expression Reference

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sun=0)
│ │ │ │ │
* * * * *

Special characters:
  *       any value
  ,       value list separator (1,3,5)
  -       range (1-5)
  /       step (*/15 = every 15)

Examples:
  0 * * * *        every hour at minute 0
  0 9 * * 1-5      9am every weekday
  30 14 1 * *      2:30pm on the 1st of every month
  */15 * * * *     every 15 minutes
  0 0 * * 0        midnight every Sunday
  0 8,12,18 * * *  8am, noon, and 6pm daily

Interval Reference (everyMs)

60000        // 1 minute
300000       // 5 minutes
600000       // 10 minutes
1800000      // 30 minutes
3600000      // 1 hour
86400000     // 1 day
604800000    // 1 week

Managing Jobs

// List all jobs
cron_list()

// List including disabled
cron_list(includeDisabled=true)

// Run a job immediately
cron_run(jobId="\x3Cid>")

// Get run history
cron_runs(jobId="\x3Cid>")

// Update a job (e.g., disable)
cron_update(jobId="\x3Cid>", patch={"enabled": false})

// Remove a job
cron_remove(jobId="\x3Cid>")

// Wake a session (e.g., trigger next-heartbeat)
cron_wake(text="Check in now", mode="now")

Failure Alerting

cron_add(
  ...,
  failureAlert={
    "after": 3,                    // alert after N consecutive failures
    "cooldownMs": 300000,          // don't spam — wait 5 min between alerts
    "mode": "announce",             // or "webhook"
    "channel": "discord",
    "to": "alerts"                 // channel or user
  }
)

Set failureAlert: false to disable alerting entirely for a job.

Anti-Patterns

  • Don't use main session for heavy recurring tasks — it accumulates context and costs tokens. Use isolated.
  • Don't schedule jobs more often than needed — every job is a LLM call. Batching checks into one heartbeat is cheaper than 5 separate 1-minute jobs.
  • Don't forget failure alerts on critical jobs — if the task fails 10 times silently, you won't know.
  • Don't use current without good reason — if your current session ends, the job binding becomes orphaned.
  • Don't set staggerMs on isolated jobs — staggerMs only applies within a single cron expression's firing. For truly staggered behavior, use separate jobs with different schedule times.

Troubleshooting

Symptom Likely Cause Fix
Job never fires Wrong timezone in cron expr Add explicit tz field
Duplicate runs Two jobs with overlapping schedules Check cron_list for duplicates
"Session not found" on isolated job Ephemeral session already expired Normal — next scheduled run creates a new one
No announcement after job runs Missing delivery config Add "delivery": {"mode": "announce"}
Too many failures alert cooldownMs too low Increase cooldownMs
Job disappeared from list It was a one-shot that ran One-shot at jobs auto-delete after running

See Also

  • heartbeat-patterns skill — combining cron with in-session heartbeat checks
  • webhook-automation skill — incoming webhook triggers and outgoing webhook delivery
  • reminder-bot skill — voice/chat reminder workflows built on cron
安全使用建议
This skill appears to implement cron-style scheduling, but its recipes instruct the agent to read local workspace files and call external URLs (webhooks, health checks) and to 'check email/calendar' without declaring required credentials. Before installing: 1) Confirm whether the agent/environment already has access to your workspace, email, or calendar and whether you're comfortable granting that access. 2) Audit any scheduled payloads for sensitive file paths or data that might be read and sent externally. 3) Prefer webhook endpoints you control; avoid public or third‑party endpoints unless you trust them. 4) If you require scheduler functionality but want tighter control, ask the publisher to (a) declare needed env vars/config paths, (b) limit scope of file reads, and (c) document exactly what data is sent in announce/webhook deliveries. If you cannot verify those items, treat the skill as potentially risky and restrict its use or run it only in a sandboxed environment.
功能分析
Type: OpenClaw Skill Name: fuzzy-cron-scheduler Version: 1.0.0 The fuzzy-cron-scheduler bundle is an instructional guide for an AI agent to manage background tasks using OpenClaw's native cron system. The skill.md file contains standard recipes for reminders, heartbeats, and health checks, utilizing built-in functions like cron_add and cron_list without any evidence of malicious intent, data exfiltration, or unauthorized execution.
能力评估
Purpose & Capability
Name/description (cron scheduling, reminders, heartbeats) align with the instructions (cron_add recipes, delivery modes). However, some requested behaviours (checking email/calendar, reading various /workspace paths, and posting to webhooks) imply access to external services and user data that are not declared or justified by the skill metadata.
Instruction Scope
SKILL.md explicitly instructs the agent to read local workspace files (e.g., /workspace/call-prep.md, /workspace/data/*.csv, HEARTBEAT.md, project logs) and to perform external HTTP GET/POST actions (health checks and webhook alerts). It also references checking email and calendar. Those actions are reasonable for a scheduler, but the instructions do not limit what data is read or transmitted and do not declare required credentials or config paths — granting broad discretion to access and exfiltrate workspace content or external services.
Install Mechanism
Instruction-only skill with no install spec and no code files — lowest install risk. Nothing is written to disk by the skill itself.
Credentials
The skill requests no environment variables or credentials in metadata, yet its recipes instruct actions that typically require credentials (email/calendar access, webhooks for alerts). Absence of declared env/config is inconsistent with suggested tasks, meaning the skill would rely on the agent's existing access — this is a transparency gap and increases risk of unexpected data access.
Persistence & Privilege
always:false and default autonomous invocation are set (normal). The skill does not request permanent system presence or modify other skills. Note: autonomous invocation combined with the instruction-level scope (reading files, external posts) increases potential blast radius — monitor invocation permissions.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install fuzzy-cron-scheduler
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /fuzzy-cron-scheduler 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of fuzzy-cron-scheduler. - Enables scheduling of one-shot or recurring background tasks using OpenClaw's cron system. - Supports flexible schedule types: at (one-shot), every (interval), and cron (Unix-style expressions with timezone). - Allows selecting session targets (isolated, main, current, or named session) to control where jobs run. - Offers multiple delivery modes: announce (chat), webhook (HTTP POST), or silent. - Includes recipes for heartbeats, reminders, staggered jobs, webhooks, persistent sessions, and snooze patterns. - Provides management functions for listing, updating, running, and removing jobs. - Adds built-in failure alerting configuration and covers troubleshooting common cron issues.
元数据
Slug fuzzy-cron-scheduler
版本 1.0.0
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 1
常见问题

Fuzzy Cron Scheduler 是什么?

Master OpenClaw cron scheduling for reliable background tasks, reminders, and recurring automation. Use when: (1) setting up periodic checks or heartbeats, (... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 105 次。

如何安装 Fuzzy Cron Scheduler?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install fuzzy-cron-scheduler」即可一键安装,无需额外配置。

Fuzzy Cron Scheduler 是免费的吗?

是的,Fuzzy Cron Scheduler 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Fuzzy Cron Scheduler 支持哪些平台?

Fuzzy Cron Scheduler 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Fuzzy Cron Scheduler?

由 Fuzzyb33s(@fuzzyb33s)开发并维护,当前版本 v1.0.0。

💬 留言讨论