Skip to content
cccskills
FreePublished on 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.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md8.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

amap

Free

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

The English summary is being prepared. Showing the original description.

MagicCube/agentara517Updated May 11, 2026

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.

The English summary is being prepared. Showing the original description.

MagicCube/agentara517Updated May 11, 2026

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.

The English summary is being prepared. Showing the original description.

MagicCube/agentara517Updated May 11, 2026

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", "用量", "额度", "配额".

The English summary is being prepared. Showing the original description.

MagicCube/agentara517Updated May 11, 2026

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.

The English summary is being prepared. Showing the original description.

MagicCube/agentara517Updated May 11, 2026

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.

The English summary is being prepared. Showing the original description.

MagicCube/agentara517Updated May 11, 2026

See all skills by MagicCube

Report a problem with this skill