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
- Very specific: line 23
Use the bundled CLI scripts/schedule.sh for shell-based operations.
- Very specific: line 76
Delete a specific schedule by label, or delete all zoobot schedules.
- Very specific: line 85
Run scripts/schedule.sh create (recurring) or use the API (one-time) with the parameters.
- Distinctive: line 160
When a schedule fires, it directly enqueues a message in the SQLite queue.
“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.
Files
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 schedulesPOST /api/schedules— create a schedulePUT /api/schedules/:id— update a scheduleDELETE /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 --allDelete a specific schedule by label, or delete all zoobot schedules.
Workflow
- Confirm the target agent ID exists (check
settings.jsonor ask the user). - 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.
- Recurring: determine the cron expression from the user's description (e.g., "every morning" ->
- Compose a clear task message — this is the prompt the agent will receive.
- Run
scripts/schedule.sh create(recurring) or use the API (one-time) with the parameters. - 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)
│ │ │ │ │
* * * * *| Pattern | Meaning |
0 9 * * * | Daily at 9:00 AM |
0 9 * * 1-5 | Weekdays at 9:00 AM |
*/15 * * * * | Every 15 minutes |
0 */2 * * * | Every 2 hours |
0 0 * * 0 | Weekly on Sunday midnight |
0 0 1 * * | Monthly on the 1st |
30 8 * * 1 | Monday 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-reportPeriodic health check
scripts/schedule.sh create \
--cron "*/30 * * * *" \
--agent devops \
--message "Run health checks on all services and report any issues" \
--label health-checkOne-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 --allHow 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.
Other versions35 projects use a version of this.
Word for word · 0
None found.
Edited · 3
- jlia0/tinyclaw★ 3.6k97% same
- TinyAGI/tinyagi★ 3.6k97% same
- TinyAGI/tinyclaw★ 3.6k97% same
Wrote their own version · 32
- SethGammon/Citadel★ 927same name
- boldsoftware/shelley★ 704same name
- first-fluke/fullstack-starter★ 223same name
- svy04/ballast★ 73same name
- invergent-ai/surogates★ 28same name
- Hassaan146/claude-skills★ 18same name
- thtskaran/claude-skills★ 18same name
- nickalie/nclaw★ 15same name
- woxiangyangzhimao/skills★ 14same name
- 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.
jlia0Skilltinyagi-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
gildasfremontSkillsetup-cowork
Guided Cowork setup — install a matching plugin, try a skill, connect tools.
Also in 4 projects that use this
thtskaranSkillconsolidate-memory
Reflective pass over your memory files — merge duplicates, fix stale facts, prune the index.
Also in 6 projects that use this
anyprotoSkillskills-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-remixSkillworkspace
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
MicrosoftSkillconnect
Also in 3 projects that use this
In this repository9 other files it gives its agents.
- AGENTS.mdAGENTS.md
- docs/AGENTS.mdAGENTS.md
- agent-browserSkill
- imagegenSkill
- memorySkill
- send-user-messageSkill
- skill-creatorSkill
- tasksSkill
- zoobot-adminSkill
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.

