CtrlK
BlogDocsLog inGet started
Tessl Logo

using-cron

Manage scheduled tasks — create, query, update, and delete. CRITICAL - When user message contains any future time intent (e.g. "in 2 days", "tomorrow at 8am", "every morning"), you MUST load this skill first. NEVER write custom scheduler scripts.

68

Quality

82%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Scheduled Message Task Management

Manage scheduled message tasks through scripts, supporting create, list, get, update, and delete operations.

Core Capabilities

  • Create one-time or recurring scheduled message tasks
  • Query and filter existing scheduled task lists
  • Get task details
  • Update task configuration (name, time, enabled status, etc.)
  • Delete tasks

Quick Start

Typical Workflow

1. Create task (create.py)
   ↓ Get returned schedule_id
2. Query list (list.py) - Optional
   ↓ Confirm task was created
3. Get details (get.py) - Optional
   ↓ View complete task info
4. Update task (update.py) - As needed
5. Delete task (delete.py) - As needed

Available Scripts


create.py - Create Scheduled Task

Create a new scheduled message task.

SYNOPSIS

python scripts/create.py --task-name <name> --message-content <content> --type <type> --time <HH:MM> [OPTIONS]

DESCRIPTION

Create a scheduled message task, supporting one-time execution and daily/weekly/monthly repeat modes.

When to pass --specify-topic 1: Pass 1 only when both hold: (1) the task is recurring (daily_repeat / weekly_repeat / monthly_repeat), and (2) the user intent implies that the next run time or trigger depends on the current or previous run's result (e.g. "run again 3 days after each completion", "next time based on last result"). For one-time tasks or fixed-schedule tasks that do not depend on previous results, omit this option or pass 0.

OPTIONS

OptionTypeRequiredDescription
--task-name <name>stringYesTask name
--message-content <content>stringYesMessage content (same as detail message_content/task_describe)
--type <type>stringYesSchedule type, see table below
--time <HH:MM>stringYesExecution time
--day <value>stringConditionalDepends on schedule type, see table below
--deadline <YYYY-MM-DD HH:MM:SS>stringNoExpiry datetime; format YYYY-MM-DD HH:MM:SS. If only date or unclear format is given, the system will interpret and complete (e.g. to 00:00:00 that day)
--specify-topic <0|1>integerNoWhether to specify topic; 0=no, 1=yes; default 0. Pass 1 only when the user intent is a recurring task whose next run depends on the previous run's result; otherwise use default 0

Schedule type --type and --day mapping:

--typeDescription--day
no_repeatNo repeat, one-time executionExecution date YYYY-MM-DD (required)
daily_repeatRepeat dailyNot needed
weekly_repeatRepeat weeklyDay of week 0-6, 0=Sunday (required)
monthly_repeatRepeat monthlyDay of month 1-31 (required)

OUTPUT

On success: {"id": "<schedule_id>"}

EXAMPLES

python scripts/create.py \
  --task-name "每日早报" \
  --message-content "请生成今日早报" \
  --type daily_repeat \
  --time "9:00"

list.py - Query Task List

Query the scheduled task list with optional filtering.

SYNOPSIS

python scripts/list.py [OPTIONS]

DESCRIPTION

Query all scheduled tasks or filter by conditions, with pagination support. Results are scoped to the current project; project_id is taken from the current session and must not be passed.

OPTIONS

OptionTypeRequiredDescription
--task-name <name>stringNoFuzzy search by task name
--enabled <0|1>integerNo1=enabled 0=disabled
--completed <0|1>integerNo1=completed 0=not completed
--page <n>integerNoPage number, default 1
--page-size <n>integerNoItems per page, default 50

OUTPUT

On success: {"total": N, "schedules": [{"id": "...", "task_name": "...", "task_describe": "...", "status": "...", "enabled": 0|1, "time_config": {...}, "deadline": ...}]}. Each item includes: id, task_name, task_describe, status, enabled, time_config, deadline.

EXAMPLES

# 查询全部
python scripts/list.py

# 按条件过滤
python scripts/list.py --task-name "早报" --enabled 1 --completed 0

get.py - Get Task Details

Get the complete details of a specific scheduled task.

SYNOPSIS

python scripts/get.py --id <schedule_id>

DESCRIPTION

Query complete task information by task ID.

OPTIONS

OptionTypeRequiredDescription
--id <schedule_id>stringYesTask ID

OUTPUT

On success: Returns complete task info including id, task_name, task_describe, message_content, time_config, status, enabled, deadline.

EXAMPLES

python scripts/get.py --id "<schedule_id>"

update.py - Update Task

Update the configuration of a specific scheduled task; only pass fields to be modified.

SYNOPSIS

python scripts/update.py --id <schedule_id> [OPTIONS]

DESCRIPTION

Update scheduled task configuration. Only pass fields to be modified; unspecified fields remain unchanged. --type and --time must be provided together.

OPTIONS

OptionTypeRequiredDescription
--id <schedule_id>stringYesTask ID
--task-name <name>stringNoNew task name
--message-content <content>stringNoMessage content (same as detail message_content/task_describe)
--type <type>stringNoSchedule type (must be provided with --time)
--time <HH:MM>stringNoExecution time (must be provided with --type)
--day <value>stringNoDate/weekday/day-of-month, depends on --type
--deadline <YYYY-MM-DD HH:MM:SS>stringNoExpiry datetime; format YYYY-MM-DD HH:MM:SS, auto-completed if only date or unclear
--enabled <0|1>integerNo1=enable 0=disable

OUTPUT

On success: {"id": "<schedule_id>"}

EXAMPLES

# 修改任务名称
python scripts/update.py --id "<schedule_id>" --task-name "新名称"

# 修改任务详情
python scripts/update.py --id "<schedule_id>" --message-content "新的任务详情内容"

# 修改调度时间
python scripts/update.py --id "<schedule_id>" --type daily_repeat --time "10:00"

# 修改截止日期
python scripts/update.py --id "<schedule_id>" --deadline "2026-12-31 23:59:59"

# 禁用任务
python scripts/update.py --id "<schedule_id>" --enabled 0

# 重新启用任务
python scripts/update.py --id "<schedule_id>" --enabled 1

delete.py - Delete Task

Delete a specific scheduled task.

SYNOPSIS

python scripts/delete.py --id <schedule_id>

DESCRIPTION

Permanently delete a scheduled task by task ID.

OPTIONS

OptionTypeRequiredDescription
--id <schedule_id>stringYesTask ID

OUTPUT

On success: {"id": "<schedule_id>"}

EXAMPLES

python scripts/delete.py --id "<schedule_id>"

Usage Examples

In Agent environment, use shell_exec tool to execute scripts:

# 创建任务
shell_exec(
    command='python scripts/create.py --task-name "每日早报" --message-content "请生成今日早报" --type daily_repeat --time "9:00"'
)

# 查询任务列表
shell_exec(
    command="python scripts/list.py"
)

# 获取任务详情
shell_exec(
    command='python scripts/get.py --id "<schedule_id>"'
)

# 更新任务
shell_exec(
    command='python scripts/update.py --id "<schedule_id>" --enabled 0'
)

# 删除任务
shell_exec(
    command='python scripts/delete.py --id "<schedule_id>"'
)
Repository
dtyq/magic
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.