agentleFS
Maliot100XMaliot100X/ZooBot/.agents/skills/schedule/SKILL.md

schedule

Skill1 starsChanged 7 months agoMITView on GitHub

Create, list, and delete scheduled tasks (recurring or one-time) that send messages to agents. Use when the user wants to: schedule a recurring task for an agent, set up a one-time future task, list existing scheduled tasks, delete or remove a scheduled task, or automate periodic agent work (reports, checks, reminders, syncs).

  • Sends data out

We split this skill into the rules it gives an agent

4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 31 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use the bundled CLI scripts/schedule.sh for shell-based operations.

    line 23
  2. Very specific:

    Delete a specific schedule by label, or delete all zoobot schedules.

    line 76
  3. Very specific:

    Run scripts/schedule.sh create (recurring) or use the API (one-time) with the parameters.

    line 85
  4. Distinctive:

    When a schedule fires, it directly enqueues a message in the SQLite queue.

    line 160

“Common” is measured: kept by at least 6 in 10 of the 31 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Schedule Skill

Manage scheduled tasks that deliver messages to agents via the zoobot API. Schedules can be recurring (cron-based) or one-time (fire once at a specific date/time). Each schedule enqueues a routed message (@agent_id <task>) that the queue processor picks up and invokes.

Schedules are persisted to ~/.zoobot/schedules.json and run in-process via the croner library — no system crontab required.

API Endpoints

Schedules are managed via REST endpoints on the API server:

  • GET /api/schedules[?agent=ID] — list schedules
  • POST /api/schedules — create a schedule
  • PUT /api/schedules/:id — update a schedule
  • DELETE /api/schedules/:id — delete a schedule

Shell CLI

Use the bundled CLI scripts/schedule.sh for shell-based operations.

Create a recurring schedule

scripts/schedule.sh create \
  --cron "EXPR" \
  --agent AGENT_ID \
  --message "Task context for the agent" \
  [--channel CHANNEL] \
  [--sender SENDER] \
  [--label LABEL]
  • --cron — 5-field cron expression (required for recurring). Examples: "0 9 * * *" (daily 9am), "*/30 * * * *" (every 30 min), "0 0 * * 1" (weekly Monday midnight).
  • --agent — Target agent ID (required). Must match an agent configured in settings.json.
  • --message — The task context / prompt sent to the agent (required).
  • --channel — Channel name in the queue message (default: schedule).
  • --sender — Sender name in the queue message (default: Scheduler).
  • --label — Unique label to identify this schedule (default: auto-generated).

Create a one-time schedule (via API)

One-time schedules are created via the REST API by passing runAt (ISO 8601 datetime) instead of cron:

curl -X POST http://localhost:3777/api/schedules \
  -H "Content-Type: application/json" \
  -d '{
    "runAt": "2026-03-20T09:00:00.000Z",
    "agentId": "coder",
    "message": "Deploy the staging build",
    "label": "staging-deploy"
  }'

One-time schedules automatically disable themselves after firing.

List schedules

scripts/schedule.sh list [--agent AGENT_ID]

Lists all zoobot schedules. Optionally filter by --agent to show only schedules targeting a specific agent.

Delete a schedule

scripts/schedule.sh delete --label LABEL
scripts/schedule.sh delete --all

Delete a specific schedule by label, or delete all zoobot schedules.

Workflow

  1. Confirm the target agent ID exists (check settings.json or ask the user).
  2. Determine recurring vs one-time:
    • Recurring: determine the cron expression from the user's description (e.g., "every morning" -> "0 9 * * *").
    • One-time: determine the target date/time and convert to ISO 8601 format.
  3. Compose a clear task message — this is the prompt the agent will receive.
  4. Run scripts/schedule.sh create (recurring) or use the API (one-time) with the parameters.
  5. Verify with scripts/schedule.sh list.

Cron expression quick reference

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-7, 0 and 7 = Sunday)
│ │ │ │ │
* * * * *
PatternMeaning
0 9 * * *Daily at 9:00 AM
0 9 * * 1-5Weekdays at 9:00 AM
*/15 * * * *Every 15 minutes
0 */2 * * *Every 2 hours
0 0 * * 0Weekly on Sunday midnight
0 0 1 * *Monthly on the 1st
30 8 * * 1Monday at 8:30 AM

Examples

Daily report

scripts/schedule.sh create \
  --cron "0 9 * * *" \
  --agent analyst \
  --message "Generate the daily metrics report and post a summary" \
  --label daily-report

Periodic health check

scripts/schedule.sh create \
  --cron "*/30 * * * *" \
  --agent devops \
  --message "Run health checks on all services and report any issues" \
  --label health-check

One-time deployment task

curl -X POST http://localhost:3777/api/schedules \
  -H "Content-Type: application/json" \
  -d '{"runAt":"2026-03-20T14:00:00.000Z","agentId":"devops","message":"Deploy v2.1 to production","label":"prod-deploy-v21"}'

List and clean up

# See all schedules
scripts/schedule.sh list

# See only schedules for @coder
scripts/schedule.sh list --agent coder

# Remove one
scripts/schedule.sh delete --label health-check

# Remove all
scripts/schedule.sh delete --all

How it works

  • Schedules are persisted in ~/.zoobot/schedules.json.
  • The server runs an in-process cron scheduler (using croner) — no system crontab needed.
  • When a schedule fires, it directly enqueues a message in the SQLite queue.
  • The queue processor picks up the message and invokes the target agent, exactly like a message from any channel.
  • One-time schedules (runAt) auto-disable after firing.
  • Responses are stored in the SQLite queue and delivered by channel clients.

TinyOffice UI

Schedules can also be managed via the Schedule tab on each agent's detail page in TinyOffice. The UI provides a calendar view showing upcoming scheduled events and a form to create new schedules (recurring or one-time) without writing cron expressions.

Download now (ZIP)

  • Other versions35 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 3

    1. jlia0/tinyclaw★ 3.6k97% same
    2. TinyAGI/tinyagi★ 3.6k97% same
    3. TinyAGI/tinyclaw★ 3.6k97% same

    Wrote their own version · 32

    1. SethGammon/Citadel★ 927same name
    2. boldsoftware/shelley★ 704same name
    3. first-fluke/fullstack-starter★ 223same name
    4. svy04/ballast★ 73same name
    5. invergent-ai/surogates★ 28same name
    6. Hassaan146/claude-skills★ 18same name
    7. thtskaran/claude-skills★ 18same name
    8. nickalie/nclaw★ 15same name
    9. woxiangyangzhimao/skills★ 14same name
    10. bks-lab/open-bridge★ 13same name

    22 more not listed

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use tinyagi-admin, setup-cowork and 6 more.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • jlia0Skill

      tinyagi-admin

      Manage and operate the TinyAGI system itself — agents, teams, settings, queue, tasks, daemon lifecycle, and source code. Use when the agent needs to: list/add/remove/update agents or teams, check queue status, view logs, start/stop/restart TinyAGI, change settings (provider, model, channels), send messages to the queue, manage tasks, retry dead-letter messages, view recent responses, modify TinyAGI source code or configuration, or perform any administrative operation on the TinyAGI platform. Triggers: 'manage tinyagi', 'add an agent', 'remove a team', 'check queue', 'view logs', 'restart tinyagi', 'change provider', 'update settings', 'create a task', 'modify tinyagi code'.

      Also in 3 projects that use this

    • gildasfremontSkill

      setup-cowork

      Guided Cowork setup — install a matching plugin, try a skill, connect tools.

      Also in 4 projects that use this

    • thtskaranSkill

      consolidate-memory

      Reflective pass over your memory files — merge duplicates, fix stale facts, prune the index.

      Also in 6 projects that use this

    • anyprotoSkill

      skills-manager

      Context-aware routing to skills and hooks management. Use when troubleshooting skill activation, fine-tuning keywords, or managing the automated documentation system.

      Also in 3 projects that use this

    • admin-remixSkill

      workspace

      Google Workspace administration - manage users, groups, email, Drive, calendars, and devices through natural conversation. Triggers on: Google Workspace, G Suite, user management, group management, admin tasks, offboarding, onboarding, email forwarding, Drive permissions, suspended users, organizational units, ChromeOS devices, audit logs, admin reports.

      Also in 3 projects that use this

    • MicrosoftSkill

      connect

      Also in 3 projects that use this

  • In this repository9 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.