本文へ移動
cccskills
無料GitHub で公開

scheduled-tasks

Manage Agentara scheduled tasks (cronjobs). Use when the user wants to create, list, update, or delete recurring scheduled tasks — triggered by phrases like "add a cronjob", "schedule a task", "remind me to do something after 10 minutes", "list my scheduled tasks", "remove cronjob", "update the schedule", etc.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md8.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Overview

This skill manages Agentara scheduled tasks via the REST API at http://localhost:1984/api/cronjobs.

A scheduled task has two parts:

  • What: an instruction (natural language prompt sent to the agent)
  • When: a schedule object with one of at/delay (one-shot) or pattern/every (recurring), plus optional limit and immediately

session_id: contextual vs independent

  • Independent (default): omit session_id. Each trigger creates a new session — the agent has no memory of previous runs. Suitable for most cronjobs.
  • Contextual: pass a fixed session_id (generate one via python3 -c "import uuid; print(uuid.uuid4())"). All triggers share the same conversation session — the agent can reference previous runs. Use this only when continuity matters (e.g. daily standup that tracks progress over time).

Workflow

Step 1: Understand intent

Ask or infer what the user wants:

IntentAction
"list cronjobs" / "show scheduled tasks"List
"add a cronjob" / "schedule a task every ..."Create
"update cronjob" / "change schedule to ..."Update (upsert by id)
"delete cronjob" / "remove scheduled task"Delete

Step 2: Determine whether session_id is needed

Ask yourself: does this task need to remember context across triggers?

  • "Summarize today's news" → No. Each run is self-contained. Omit session_id.
  • "Check project progress and compare with yesterday" → Yes. The agent needs prior context. Generate a fixed session_id.

If unsure, ask the user: "Should each trigger run independently, or do you need them to share conversation history?"

Step 3: Execute

Use Bash to run curl commands against the API. All examples below use localhost:1984.

IMPORTANT: Never pipe write operations (POST/PUT/DELETE) through jq. If jq fails to parse the response, the curl request has still been sent and executed server-side. Retrying the command will create duplicates or cause unintended side effects. Only use | jq . for read operations (GET). For write operations, output the raw response directly.


API Reference

List all scheduled tasks

curl -s http://localhost:1984/api/cronjobs | jq .

jq is safe here because GET is read-only. Never use | jq . on POST/PUT/DELETE commands.

Create — independent (no session_id)

Most common case. Each trigger starts a fresh session.

Cron pattern (every day at 9 AM):

curl -s -X POST http://localhost:1984/api/cronjobs \
  -H "Content-Type: application/json" \
  -d '{
    "instruction": "Summarize today'\''s top tech news",
    "schedule": { "pattern": "0 9 * * *" }
  }'

Interval (every 30 minutes):

curl -s -X POST http://localhost:1984/api/cronjobs \
  -H "Content-Type: application/json" \
  -d '{
    "instruction": "Check all services are healthy",
    "schedule": { "every": 1800000 }
  }'

Cron + limit (every Friday 6 PM, max 10 times):

curl -s -X POST http://localhost:1984/api/cronjobs \
  -H "Content-Type: application/json" \
  -d '{
    "instruction": "Generate weekly project report",
    "schedule": { "pattern": "0 18 * * 5", "limit": 10 }
  }'

Interval + immediately (every hour, first run right now):

curl -s -X POST http://localhost:1984/api/cronjobs \
  -H "Content-Type: application/json" \
  -d '{
    "instruction": "Sync upstream repository changes",
    "schedule": { "every": 3600000, "immediately": true }
  }'

Delay (one-shot after 10 minutes):

curl -s -X POST http://localhost:1984/api/cronjobs \
  -H "Content-Type: application/json" \
  -d '{
    "instruction": "Remind me to review the report",
    "schedule": { "delay": 600000 }
  }'

All schedule options (cron + interval + limit + immediately):

curl -s -X POST http://localhost:1984/api/cronjobs \
  -H "Content-Type: application/json" \
  -d '{
    "instruction": "Run full regression test suite",
    "schedule": {
      "pattern": "0 2 * * *",
      "every": 86400000,
      "limit": 30,
      "immediately": true
    }
  }'

Create — contextual (with session_id)

First generate a UUID:

SESSION_ID=$(python3 -c "import uuid; print(uuid.uuid4())")

Then pass it. All triggers will share this session's conversation history:

curl -s -X POST http://localhost:1984/api/cronjobs \
  -H "Content-Type: application/json" \
  -d "{
    \"session_id\": \"$SESSION_ID\",
    \"instruction\": \"Check project progress, compare with yesterday, and flag blockers\",
    \"schedule\": { \"pattern\": \"0 9 * * 1-5\" }
  }"

Update a scheduled task

PUT with the scheduler ID in the path. Omit session_id to keep existing; pass null for independent mode or a UUID for contextual.

curl -s -X PUT http://localhost:1984/api/cronjobs/<scheduled-task-id> \
  -H "Content-Type: application/json" \
  -d '{
    "instruction": "Updated instruction here",
    "schedule": { "pattern": "0 8 * * *" }
  }'

Delete a scheduled task

curl -s -X DELETE http://localhost:1984/api/cronjobs/<scheduled-task-id>

Schedule field reference

FieldTypeRequiredDescription
atnumberone of at/delay/pattern/everyEpoch ms for one-shot at a specific time
delaynumberone of at/delay/pattern/everyDelay in ms before one-shot (normalized to at on save)
patternstringone of at/delay/pattern/everyCron expression (e.g. "0 9 * * *")
everynumberone of at/delay/pattern/everyInterval in ms
limitnumbernoMax execution count
immediatelybooleannoRun once immediately on registration

Note: for one-shot, use exactly one of at or delay; no other schedule fields are allowed. delay is normalized to at when stored.


Guided interaction

When the user describes a task in natural language:

  1. Extract the instruction — what the agent should do.
  2. Extract the schedule — map natural language to schedule fields:
    • "Only once at 2026-03-11 09:00:00" → { "at": 1773190800000 }, resolve timestamp by running Python code: import datetime; print(int(datetime.datetime(2026, 3, 11, 9, 0, 0).timestamp() * 1000))
    • "10 minutes later" / "in 10 minutes" → { "delay": 600000 } (600000 ms = 10 min)
    • "every day at 9am" → { "pattern": "0 9 * * *" }
    • "every 30 minutes" → { "every": 1800000 }
    • "only 5 times" → add "limit": 5
    • "start now" / "run immediately" → add "immediately": true
  3. Decide session_id — does the task need cross-trigger context? If yes, generate a UUID. If no (most cases), omit it.
  4. Confirm the mapped parameters with the user before executing.
  5. After execution, show the response (especially the id for future update/delete).

When modifying an existing task, always use Update (PUT) instead of delete + create. This preserves the task ID and is a single operation. Only use delete when the user explicitly wants to remove a task entirely.

When deleting or updating, first list existing tasks so the user can pick which one to modify.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

amap

無料

通过脚本直连高德 Web Service API 完成地理编码、逆地理编码、IP 定位、天气、路径规划、距离测量和 POI 查询。用户要求“高德/AMap 查询”“路线规划”“地理编码”“POI 搜索”或需要用命令行脚本调用高德 API 时使用。

日本語の概要は準備中です。原文の説明を表示しています。

MagicCube/agentara5162026年5月11日 更新

Generate a beautifully designed infographic poster from an article URL or text content. Trigger when user says "article poster", "文章海报", "infographic", "信息图", "make a poster", "生成海报", "visual summary", or requests to convert an article/blog into a shareable image. NOT for generic poster design.

日本語の概要は準備中です。原文の説明を表示しています。

MagicCube/agentara5162026年5月11日 更新

bootstrap

無料

First-time onboarding for new Agentara users. Use when user says "bootstrap", "/bootstrap", "get started", "first time setup", or when memory/USER.md and memory/SOUL.md are empty/missing. Inspired by the movie Her — warm, curious, subtly brilliant. The goal is to make the user feel understood within minutes and want to keep going.

日本語の概要は準備中です。原文の説明を表示しています。

MagicCube/agentara5162026年5月11日 更新

Check current Claude usage limits (session and weekly) with ASCII progress bars. Trigger when the user asks about usage, quota, limits, rate limits, how much Claude they've used, remaining capacity, or phrases like "check usage", "usage status", "how much quota left", "am I close to the limit", "用量", "额度", "配额".

日本語の概要は準備中です。原文の説明を表示しています。

MagicCube/agentara5162026年5月11日 更新

Use this skill when the user requests to generate, create, or write professional research reports including but not limited to market analysis, consumer insights, brand analysis, financial analysis, industry research, competitive intelligence, investment due diligence, or any consulting-grade analytical report. This skill operates in two phases — (1) generating a structured analysis framework with chapter skeleton, data query requirements, and analysis logic, and (2) after data collection by other skills, producing the final consulting-grade report with structured narratives, embedded charts, and strategic insights.

日本語の概要は準備中です。原文の説明を表示しています。

MagicCube/agentara5162026年5月11日 更新

Get the current date (with day of week) and time (HH:MM:SS) in a specified timezone. Auto-trigger when needing to know current time, date, or day of week — including when guessing user's location based on schedule, answering "what time is it", "what day is it", "today is what date", or any context where accurate real-time clock data is needed. Also trigger proactively at the start of conversations to ground yourself in the current time.

日本語の概要は準備中です。原文の説明を表示しています。

MagicCube/agentara5162026年5月11日 更新

MagicCube のスキルをすべて見る

このスキルの問題を報告する