← Back to Skills Marketplace
gostlightai

Casual Cron

by gostlight · GitHub ↗ · v1.2.0
cross-platform ✓ Security Clean
2905
Downloads
1
Stars
10
Active Installs
6
Versions
Install in OpenClaw
/install casual-cron
Description
Create Clawdbot cron jobs from natural language with strict run-guard rules. Use when: users ask to schedule reminders or messages (recurring or one-shot), especially via Telegram, or when they use /at or /every. Examples: 'Create a daily reminder at 8am', 'Remind me in 20 minutes', 'Send me a Telegram message at 3pm', '/every 2h'.
README (SKILL.md)

Casual Cron

Create Clawdbot cron jobs from natural language. Supports one-shot and repeating schedules with safe run-guard rules.

Cron Run Guard (Hard Rules)

  • When running inside a cron job: do NOT troubleshoot, do NOT restart gateway, and do NOT check time.
  • Do NOT send acknowledgements or explanations.
  • Output ONLY the exact message payload and then stop.

How It Works

  1. Agent detects scheduling intent from user message (or /at / /every command)
  2. Parses: time, frequency, channel, destination, message
  3. Builds openclaw cron add command with correct flags
  4. Confirms parsed time, job name, and job id with user before executing

Scheduling Rules

When a message starts with /at or /every, schedule via the CLI (NOT the cron tool API).

Use: openclaw cron add

/at (one-shot)

  • If user gives a clock time (e.g., "3pm"), convert to ISO with offset computed for America/New_York on that date (DST-safe).
  • Prefer relative times for near-term reminders (e.g., --at "20m").
  • Use --session isolated --message "Output exactly: \x3Ctask>".
  • Always include --delete-after-run.
  • Always include --deliver --channel \x3Cchannel> --to \x3Cdestination>.

/every (repeating)

  • If interval: use --every "\x3Cduration>" (no timezone needed).
  • If clock time: use --cron "\x3Cexpr>" --tz "America/New_York".
  • Use --session isolated --message "Output exactly: \x3Ctask>".
  • Always include --deliver --channel \x3Cchannel> --to \x3Cdestination>.

Confirmation

  • Always confirm parsed time, job name, and job id with the user before finalizing.

Command Reference

One-shot (clock time, DST-aware):

openclaw cron add \
  --name "Reminder example" \
  --at "2026-01-28T15:00:00-05:00" \
  --session isolated \
  --message "Output exactly: \x3CTASK>" \
  --deliver --channel telegram --to \x3CTELEGRAM_CHAT_ID> \
  --delete-after-run

One-shot (relative time):

openclaw cron add \
  --name "Reminder in 20m" \
  --at "20m" \
  --session isolated \
  --message "Output exactly: \x3CTASK>" \
  --deliver --channel telegram --to \x3CTELEGRAM_CHAT_ID> \
  --delete-after-run

Repeating (clock time, DST-aware):

openclaw cron add \
  --name "Daily 3pm reminder" \
  --cron "0 15 * * *" --tz "America/New_York" \
  --session isolated \
  --message "Output exactly: \x3CTASK>" \
  --deliver --channel telegram --to \x3CTELEGRAM_CHAT_ID>

Repeating (interval):

openclaw cron add \
  --name "Every 2 hours" \
  --every "2h" \
  --session isolated \
  --message "Output exactly: \x3CTASK>" \
  --deliver --channel telegram --to \x3CTELEGRAM_CHAT_ID>

Configuration

Setting Value
Default timezone America/New_York (DST-aware)
Default channel telegram (override via CRON_DEFAULT_CHANNEL env var)
Supported channels telegram, whatsapp, slack, discord, signal

Supported Patterns

Time Formats

Input Cron
8am 0 8 * * *
8:45pm 45 20 * * *
noon 0 12 * * *
midnight 0 0 * * *
14:30 30 14 * * *

Frequencies

Input Behavior
daily / every day Daily at specified time
weekdays / mon-fri Mon-Fri at specified time
mondays / every monday Weekly on Monday
hourly / every hour Every hour at :00
every 2 hours 0 */2 * * *
weekly Weekly (defaults to Monday)
monthly Monthly (1st of month)
Usage Guidance
This skill appears to do exactly what it says: parse natural-language reminders and build openclaw cron add commands. Before installing, confirm: (1) you have a trusted openclaw binary on PATH (the skill runs that CLI), (2) CRON_DEFAULT_CHANNEL is set to an acceptable default if you rely on it, and (3) your agent's execution policy requires explicit user confirmation before running the constructed openclaw commands (the SKILL.md claims confirmation, but job id can only be known after creation). Note the skill can schedule messages to arbitrary destinations (phone numbers/handles), so ensure your agent won't be allowed to create jobs without human oversight and periodically audit scheduled jobs. The repository contains duplicate script/test copies and slightly inconsistent metadata (minor housekeeping issue) but nothing that indicates hidden exfiltration or unrelated credential access.
Capability Analysis
Type: OpenClaw Skill Name: casual-cron Version: 1.2.0 The OpenClaw AgentSkills skill bundle 'casual-cron' is classified as benign. The `cron_builder.py` script, which is central to the skill, robustly prevents shell injection by utilizing `shlex.quote()` for all user-controlled arguments passed to the `openclaw cron add` command (e.g., `--name`, `--message`, `--channel`, `--to`). This critical security measure is explicitly verified by comprehensive unit tests in `test_cron_builder.py`. Furthermore, the `SKILL.md` includes 'Cron Run Guard (Hard Rules)' which are defensive prompt-injection instructions for the AI agent, limiting its actions when running inside a cron job. The `_parse_message` function in `cron_builder.py` also sanitizes or replaces user-provided messages with predefined content for specific keywords, further reducing the risk of malicious content being scheduled. The skill's functionality is aligned with its stated purpose of creating scheduled reminders within the OpenClaw framework, using the `--session isolated` flag for enhanced security.
Capability Assessment
Purpose & Capability
Name/description align with required binaries (python3, openclaw) and the CRON_DEFAULT_CHANNEL env var. The skill only needs an OpenClaw CLI to add cron jobs and an optional default channel — these are proportionate to the stated purpose.
Instruction Scope
SKILL.md instructs building and (after confirmation) running openclaw cron add commands; that matches the parser/builder code. Minor inconsistency: SKILL.md says to 'confirm parsed time, job name, and job id with user before executing' — job id is only available after creating the job, so confirmation flow may be misstated. Otherwise instructions do not request unrelated files, envs, or external endpoints.
Install Mechanism
No install spec (instruction-only) and provided code files are local. No downloads or third-party package installs are declared, so there is no elevated install risk.
Credentials
Only CRON_DEFAULT_CHANNEL is required (used to choose a default delivery channel). No tokens, passwords, or unrelated credentials are requested. The code defaults to placeholders for destinations when none are parsed.
Persistence & Privilege
Skill is not always-included and does not request system-wide config changes. It builds and (when executed by the agent) runs CLI commands to schedule jobs — appropriate for a scheduling skill. Autonomous invocation is allowed by platform default but is not combined with other red flags here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install casual-cron
  3. After installation, invoke the skill by name or use /casual-cron
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.2.0
Replace canned messages with pass-through extraction. Messages now use the user's actual text instead of hardcoded purpose-matched responses. Removed Channels and Default Messages docs sections.
v1.1.0
Shell-escape user fields with shlex.quote, one-shot clock-time via ISO --at flag, removed stale nested skills/ directory
v2.0.1
Declare openclaw binary and CRON_DEFAULT_CHANNEL env var in metadata requires (fixes security scan).
v2.0.0
Rewritten from original, new script, tightened cron rules, added testing.
v1.0.1
Initial public release
v1.0.0
Initial release of casual-cron: create Clawdbot cron jobs from natural language. - Supports scheduling one-shot and recurring reminders via natural language or commands like /at and /every. - Enforces strict cron run-guard rules for safe, non-intrusive operation. - Handles timezone-aware scheduling (America/New_York, DST-safe) for Telegram and other channels. - Provides CLI integration with openclaw for job creation. - Confirms parsed time, job name, and job id on job creation. - Auto-generates default messages for common reminder types.
Metadata
Slug casual-cron
Version 1.2.0
License
All-time Installs 10
Active Installs 10
Total Versions 6
Frequently Asked Questions

What is Casual Cron?

Create Clawdbot cron jobs from natural language with strict run-guard rules. Use when: users ask to schedule reminders or messages (recurring or one-shot), especially via Telegram, or when they use /at or /every. Examples: 'Create a daily reminder at 8am', 'Remind me in 20 minutes', 'Send me a Telegram message at 3pm', '/every 2h'. It is an AI Agent Skill for Claude Code / OpenClaw, with 2905 downloads so far.

How do I install Casual Cron?

Run "/install casual-cron" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Casual Cron free?

Yes, Casual Cron is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Casual Cron support?

Casual Cron is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Casual Cron?

It is built and maintained by gostlight (@gostlightai); the current version is v1.2.0.

💬 Comments