Claude-skill-registry cron
Scheduled task management - create, query, delete scheduled tasks to automatically execute operations at specified times.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/cron" ~/.claude/skills/majiayu000-claude-skill-registry-cron && rm -rf "$T"
skills/data/cron/SKILL.mdScheduled Task Skill
You can manage scheduled tasks to automatically execute operations at specified times.
IMPORTANT RULES
- ONE task per conversation - Each conversation can only have ONE scheduled task
- Query and WAIT for result - Before creating a task, output
and WAIT for the system to return the result[CRON_LIST] - NEVER combine commands - Do NOT output
and[CRON_LIST]
in the same message. Query first, wait for result, then decide.[CRON_CREATE] - ASK before delete - If a task exists, you MUST ask the user whether to replace it or keep it. NEVER delete without user's explicit confirmation.
- ALWAYS include closing tags -
MUST end with[CRON_CREATE][/CRON_CREATE] - Output commands directly - Do NOT wrap commands in markdown code blocks
Workflow for Creating a Task
CRITICAL: This is a multi-turn workflow. Do NOT skip steps or combine them.
Step 1: Query existing tasks (STOP and wait) Output ONLY
[CRON_LIST] and nothing else. The system will return the current task status.
DO NOT proceed to Step 2 until you see the system response.
Step 2: Review the result and ask user (STOP and wait for user response) After receiving the
[CRON_LIST] result:
- If "No scheduled tasks" → proceed to Step 3
- If a task already exists → You MUST ask the user what they want to do:
- Option A: Delete the existing task and create a new one
- Option B: Keep the existing task and cancel creating a new one
- NEVER delete the existing task without explicit user confirmation
- Wait for the user's response before proceeding
Step 3: Execute user's decision
- If user chose to replace: First delete the old task with
, wait for confirmation, then create new task[CRON_DELETE: <job-id>] - If user chose to keep: Do NOT create a new task, inform user the existing task is retained
Step 4: Create the new task (only if no task exists or user confirmed deletion) Only after confirming no task exists (or after successfully deleting), output the
[CRON_CREATE] block.
Create Scheduled Task
When user requests a timed reminder or periodic task, output this format DIRECTLY (not in code blocks):
[CRON_CREATE] name: Task name schedule: Cron expression schedule_description: Human-readable description of when the task runs message: Message content to send when triggered [/CRON_CREATE]
Required fields:
: Short descriptive name for the taskname
: Valid cron expressionschedule
: Human-readable explanation of the schedule (e.g., "Every Monday at 9:00 AM")schedule_description
: The message to send when the task triggersmessage
Example output (output EXACTLY like this, without code blocks):
[CRON_CREATE] name: Weekly Meeting Reminder schedule: 0 9 * * MON schedule_description: Every Monday at 9:00 AM message: Time for the weekly meeting! [/CRON_CREATE]
Query Scheduled Tasks
Output
[CRON_LIST] directly (not in code blocks) to query scheduled tasks.
The system will return the result in a follow-up message. Wait for the response before taking further action.
Delete Scheduled Task
Output
[CRON_DELETE: <actual-job-id>] directly to delete a specific task.
Replace <actual-job-id> with the real job ID (e.g., cron_abc123).
Cron Expression Reference
| Expression | Meaning |
|---|---|
| Every day at 9:00 AM |
| Every Monday at 9:00 AM |
| Weekdays at 9:00 AM |
| Every 30 minutes |
| Every 2 hours |
| 1st of every month at midnight |
| Every Friday at 6:00 PM |
| Every day at 9:00 AM and 6:00 PM |
Cron Expression Format
┌───────────── minute (0-59) │ ┌───────────── hour (0-23) │ │ ┌───────────── day of month (1-31) │ │ │ ┌───────────── month (1-12) │ │ │ │ ┌───────────── day of week (0-6, SUN-SAT) │ │ │ │ │ * * * * *
Special Characters
- Any value*
- List separator (e.g.,,
)1,3,5
- Range (e.g.,-
)MON-FRI
- Step (e.g.,/
for every 15)*/15
Notes
- Scheduled tasks are bound to the current conversation
- When triggered, the message will be sent to this conversation
- CRITICAL:
is an async query. You MUST wait for the system response before proceeding with[CRON_LIST]
or[CRON_CREATE]
. Never output multiple commands in one message.[CRON_DELETE]