---
name: Scheduled Tasks
slug: scheduled-tasks
category: Automation
description: Scheduled Tasks lets you register recurring jobs with cron expressions and list or remove existing schedules. Use it for reminders, periodic reports, polling, or other tasks that should run on a fixed interval.
github: "https://github.com/KonghaYao/peri/tree/main/peri-middlewares/src/skills/builtin/skills/cron"
language: Rust
stars: 163
forks: 30
install: "npx degit https://github.com/KonghaYao/peri/tree/main/peri-middlewares/src/skills/builtin/skills/cron ~/.claude/skills/cron"
installs_to: ~/.claude/skills/cron
source_path: peri-middlewares/src/skills/builtin/skills/cron/SKILL.md
collection_size: 20
category_size: 2226
collection_url: "https://dirskills.com/collections/KonghaYao/peri"
added: 2026-09-08T05:35:45.745Z
last_synced: 2026-09-08T05:35:45.745Z
canonical_url: "https://dirskills.com/skills/scheduled-tasks"
---

# Scheduled Tasks

Scheduled Tasks lets you register recurring jobs with cron expressions and list or remove existing schedules. Use it for reminders, periodic reports, polling, or other tasks that should run on a fixed interval.

**Install:**

```bash
npx degit https://github.com/KonghaYao/peri/tree/main/peri-middlewares/src/skills/builtin/skills/cron ~/.claude/skills/cron
```

## README

# Scheduled Tasks (Cron)

You have access to scheduled task tools (`cron_register`, `cron_list`, `cron_remove`) for registering recurring automated tasks using standard 5-field cron expressions (`minute hour day_of_month month day_of_week`).

## When to Use

- The user asks for a recurring/periodic task: reminders, periodic reports, status checks, polling.
- The user asks to manage existing scheduled tasks (list, remove).
- The user's phrasing implies "every X", "每天/每周/每月", "at 9am daily", etc.

Do NOT register a cron task just because the user mentions a time — only when they explicitly want it to repeat automatically.

## Tools

| Tool | Purpose |
| --- | --- |
| `cron_register(expression, prompt)` | Register a new scheduled task. `prompt` is the user message submitted when the task fires. |
| `cron_list()` | List all registered tasks with status, next fire time, and prompt. |
| `cron_remove(id)` | Remove a task by its ID (shown by `cron_list`). |

## Cron Expression Format

Standard 5-field cron expression:

```
minute hour day_of_month month day_of_week
```

Examples:

- `*/5 * * * *` — every 5 minutes
- `0 9 * * *` — every day at 09:00
- `0 9 * * 1-5` — weekdays at 09:00
- `30 8 1 * *` — the 1st of each month at 08:30

Use `cron_list` to verify the registered task and its next fire time after registering.

## Safety

`cron_register` schedules future agent turns that fire without further user confirmation — treat it like delegating execution authority. Before registering:

- Confirm the user explicitly asked for a recurring task. Do not register cron tasks speculatively or "to be helpful."
- Prefer prompts that read or report over prompts that write, delete, commit, or run destructive commands. A cron that fires `git push --force` overnight is a footgun.
- State the schedule and the exact prompt you are about to register, then wait for confirmation if there is any ambiguity.
- Avoid tight intervals (e.g. `* * * * *`) unless the user asked for them — they burn tokens fast and can flood the session.

In approval mode, `cron_register` always prompts the user before registering.

## Workflow

1. Confirm the user wants a recurring task, and pin down the schedule + what the prompt should do.
2. Translate the schedule into a 5-field cron expression.
3. Call `cron_register`, then `cron_list` to confirm the task and its next fire time.
