Problem
pi-web has a full-featured Schedules system (cron-based automated pi agent runs, CRUD API, Svelte UI) — but the pi coding agent itself has no knowledge of it. When a user asks pi to help with scheduling, explain how schedules work, debug a schedule issue, or create a skill related to schedules, pi draws a blank.
We have one project-local skill (memory in .pi/skills/memory/SKILL.md), and schedules is an obvious second: it is a first-class pi-web subsystem with its own package, API, frontend, and push notification integration.
What should the skill cover
A .pi/skills/schedules/SKILL.md should explain:
- Concept: what schedules are (automated pi agent runs on a timer), how they fire (new session + instructions as first message), manual-only vs cron-based
- Architecture: the 3 layers (data → scheduler → API), SQLite tables, cron math
- API: REST endpoints and payloads for CRUD, run-now, and run history
- Frontend:
/schedules page, the frequency-preset UI, model/project picker, run log
- Push notifications:
schedule-done vs session-done
- Common debugging scenarios: why a schedule did not fire, how to inspect run history, manual vs enabled interaction
Relevant code paths
| Area |
Path |
| Data model + store |
internal/schedules/schedule.go |
| Scheduler ticker |
internal/server/scheduler.go |
| REST API |
internal/server/schedules_api.go |
| Frontend page |
web/src/routes/SchedulesPage.svelte |
| Cron helpers |
web/src/index/schedules.js |
| Push integration |
internal/server/push.go, internal/server/status.go |
| Route registration |
internal/server/server.go |
| CSS |
internal/ui/embedded/styles/schedules.css |
| Tests |
internal/schedules/schedule_test.go, internal/server/scheduler_test.go, web/src/index/schedules.test.js |
Existing skill to follow as template
.pi/skills/memory/SKILL.md — follows the format of YAML frontmatter (name, description) followed by markdown docs with sections on core files, common commands, rules, and when-to-use guidance.
Acceptance criteria
Problem
pi-web has a full-featured Schedules system (cron-based automated pi agent runs, CRUD API, Svelte UI) — but the pi coding agent itself has no knowledge of it. When a user asks pi to help with scheduling, explain how schedules work, debug a schedule issue, or create a skill related to schedules, pi draws a blank.
We have one project-local skill (
memoryin.pi/skills/memory/SKILL.md), and schedules is an obvious second: it is a first-class pi-web subsystem with its own package, API, frontend, and push notification integration.What should the skill cover
A
.pi/skills/schedules/SKILL.mdshould explain:/schedulespage, the frequency-preset UI, model/project picker, run logschedule-donevssession-doneRelevant code paths
internal/schedules/schedule.gointernal/server/scheduler.gointernal/server/schedules_api.goweb/src/routes/SchedulesPage.svelteweb/src/index/schedules.jsinternal/server/push.go,internal/server/status.gointernal/server/server.gointernal/ui/embedded/styles/schedules.cssinternal/schedules/schedule_test.go,internal/server/scheduler_test.go,web/src/index/schedules.test.jsExisting skill to follow as template
.pi/skills/memory/SKILL.md— follows the format of YAML frontmatter (name,description) followed by markdown docs with sections on core files, common commands, rules, and when-to-use guidance.Acceptance criteria
.pi/skills/schedules/SKILL.mdexists with frontmatter (name: schedules, clear description)