Skip to content
Back to skills

Casual Cron

ASecurity

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'.

  • 14 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 7, 2026
toolspythongoapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 7, 2026

npx -y skills add modbender/skill-library-mcp --skill casual-cron --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Casual Cron?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Casual Cron
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-casual-cron-skill-library-mcp/badge)](https://www.skillsdirectory.com/skills/modbender-casual-cron-skill-library-mcp)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: 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'."
metadata: {"openclaw":{"emoji":"⏰","requires":{"bins":["python3","openclaw"],"env":["CRON_DEFAULT_CHANNEL"]}}}
---

# 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: <task>"`.
- Always include `--delete-after-run`.
- Always include `--deliver --channel <channel> --to <destination>`.

### /every (repeating)

- If interval: use `--every "<duration>"` (no timezone needed).
- If clock time: use `--cron "<expr>" --tz "America/New_York"`.
- Use `--session isolated --message "Output exactly: <task>"`.
- Always include `--deliver --channel <channel> --to <destination>`.

### 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: <TASK>" \
  --deliver --channel telegram --to <TELEGRAM_CHAT_ID> \
  --delete-after-run
```

One-shot (relative time):
```
openclaw cron add \
  --name "Reminder in 20m" \
  --at "20m" \
  --session isolated \
  --message "Output exactly: <TASK>" \
  --deliver --channel telegram --to <TELEGRAM_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: <TASK>" \
  --deliver --channel telegram --to <TELEGRAM_CHAT_ID>
```

Repeating (interval):
```
openclaw cron add \
  --name "Every 2 hours" \
  --every "2h" \
  --session isolated \
  --message "Output exactly: <TASK>" \
  --deliver --channel telegram --to <TELEGRAM_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) |

### Channels

Mention the channel in your request:
- "on telegram" / "on whatsapp" / "on slack" / "on discord" / "on signal"

---

## Default Messages

| Type | Default Message |
|------|-----------------|
| Ikigai | Morning journal with purpose, food, movement, connection, gratitude |
| Water | "Time to drink water! Stay hydrated!" |
| Morning | "Good morning! Time for your daily check-in." |
| Evening | "Evening check-in! How was your day?" |
| Weekly | Weekly goals review |
| Default | "Your scheduled reminder is here!" |

Files in this skill

  • CHANGELOG.md1.5 KB
  • SKILL.md4.5 KB
  • scripts/cron_builder.py10.8 KB
  • test/test_cron_builder.py9.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…