Agent skill

Schedule

by SethGammon in SethGammon/Citadel

Manages recurring and one-off scheduled tasks. An agent skill from SethGammon/Citadel.

MITAuto-check passedProductivity & Automation

Install Schedule

skills CLI
$ npx skills add SethGammon/Citadel --skill schedule -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install SethGammon/Citadel schedule --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/SethGammon/Citadel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/schedule .claude/skills/schedule && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
schedule
GitHub stars
922
Token cost
~2.1k tokens
SKILL.md length
1,043 words
Files
3
Skills in repo
48
Repo updated
First seen
Licence
MIT

At a glance

Manages recurring and one-off scheduled tasks. An agent skill from SethGammon/Citadel.

  • Works in 2 steps: Confirm: "This will use CronCreate,… → On confirmation, run the…
  • Tasks that involve Scheduled and recurring tasks
  • SKILL.md covers Orientation, Default execution path (READ…, When to Route Here and Protocol, plus 5 more sections
  • Calls node

What it does

Schedule is an agent skill from SethGammon/Citadel. Manages recurring and one-off scheduled tasks. Session-scoped scheduling via CronCreate/CronDelete/CronList. Documents the cloud path for tasks that need to survive machine sleep or network drops.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `__benchmarks__/list-empty.md` and `__benchmarks__/natural-language-interval.md`).

It sits in Productivity & Automation, covering Scheduled and recurring tasks. The repository describes itself as: The operating layer for Claude Code + OpenAI Codex: persistent project memory, intent routing, safety hooks, cost telemetry, and parallel agent fleets. The licence is MIT.

When your agent uses it

  • Tasks that involve Scheduled and recurring tasks

Example prompts

  • “Use the schedule skill to manage recurring and one-off scheduled tasks. An agent skill from SethGammon/Citadel”
  • “/schedule”

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Confirm: "This will use CronCreate, which counts against your 15 routine
  2. On confirmation, run the CronCreate-based flow documented below.

What it can do on your machine

Read from SKILL.md and the folder at commit e41ff1d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Schedule loads about 2.1k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 1,043 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~51
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from SethGammon/Citadel at commit e41ff1d, republished under its MIT licence (© SethGammon). 1,043 words, ~2,074 tokens.

Download SKILL.mdSave it as .claude/skills/schedule/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
schedule
description
Manages recurring and one-off scheduled tasks. Session-scoped scheduling via CronCreate/CronDelete/CronList. Documents the cloud path for tasks that need to survive machine sleep or network drops.
license
MIT
user-invocable
true
auto-trigger
false
trigger_keywords
schedule, recurring, every N minutes, cron, set a reminder, run periodically
last-updated
2026-03-26

/schedule — Task Scheduling

Orientation

Use when: scheduling a recurring or one-off remote agent run (cron-style, outside the current session). Don't use when: repeating work within the current session (use /loop); continuous unattended campaigns (use /daemon).

Default execution path (READ FIRST)

/schedule add does NOT call CronCreate by default. It shells out to node scripts/local-schedule.js which installs a native OS entry (Windows Task Scheduler or Unix cron). Only pass --remote to use Anthropic's routine system, and only after explicit user confirmation.

Why: CronCreate counts against the account-wide 15 routine runs / 24h cap; every fire of the scheduled task counts. See docs/ROUTINE-QUOTA.md.

Default flow — /schedule add "<expr>" "<command>" (no --remote)

Run:

bash
node scripts/local-schedule.js add "<expr>" "<command>" --confirm

Before running, show the cadence, project, prompt and persistence and obtain approval to create the OS task. Normal Claude permissions remain enabled. Do not add a bypass flag to make unattended execution succeed.

Then report the returned ID and the removal command. This survives session end, machine reboot, and consumes zero routine quota. Use /schedule list and /schedule remove {id} (which also shell out to local-schedule.js) by default. Remove tasks before uninstalling. New jobs require their .citadel/schedules/<id>.json record; deleting it disables execution but leaves an inert OS entry. Existing jobs retain their old bypass flags until explicitly removed and recreated. See runner safety and migration.

Codex automation lane

When running in Codex and the user wants the schedule to survive the current terminal session, create a Codex Automation plan instead of a local OS entry:

bash
node scripts/codex-automation.js plan --type schedule --cadence "<expr>" --command "<command>" --write

Give the returned prompt to the Codex app automation surface and keep the generated .planning/codex-automations/{id}.json as the durable Citadel record.

If .planning/ does not exist, create it before writing automation state.

Opt-in routine flow — /schedule add --remote ...

Only when --remote is explicitly passed:

  1. Confirm: "This will use CronCreate, which counts against your 15 routine runs / 24h quota and is cleared at session end. Continue? (y/N)"
  2. On confirmation, run the CronCreate-based flow documented below.

The rest of the protocol documents the full CronCreate flow for reference and for --remote invocations.

When to Route Here

  • "run pr-watch every hour"
  • "check my PRs automatically"
  • "schedule a thing"
  • "remind me to run tests every 30 minutes"
  • "set up a recurring task"
  • "list my scheduled tasks"
  • "cancel the PR check"
  • Any mention of "schedule", "recurring", "every N minutes/hours", "cron"

Protocol

/schedule list

List all currently scheduled tasks using CronList.

Output format:

Active schedules (N):
  [id] {description} — {cron expression} — next run: {time}

No schedules active.

If CronList is not available: output a helpful error (see Fringe Cases).


/schedule add "{description}" {/skill-or-command}

Create a recurring task.

Steps:

  1. Parse the user's description to extract:
    • Natural language interval: "every 30 minutes", "hourly", "every day at 9am"
    • The skill or command to run: /pr-watch, /do status, etc.
  2. Convert natural language to a cron expression (see Conversion Table below)
  3. Confirm with user: "I'll run {command} {natural-language-interval} (cron: {expression}). OK?"
  4. If confirmed: call CronCreate with the expression and command
  5. Output: "Scheduled. ID: {id}. Use /schedule remove {id} to cancel."

Cron Expression Conversion Table:

Natural LanguageCron Expression
every minute* * * * *
every 5 minutes*/5 * * * *
every 15 minutes*/15 * * * *
every 30 minutes*/30 * * * *
every hour / hourly0 * * * *
every 2 hours0 */2 * * *
every 6 hours0 */6 * * *
every day / daily0 9 * * * (default 9am)
every day at {H}am/pm0 {H} * * *
every weekday0 9 * * 1-5
every Monday0 9 * * 1

If the user provides a raw cron expression directly, use it as-is without converting. Validate it has 5 fields before accepting.


/schedule remove {id}

Remove a scheduled task by ID using CronDelete.

If the user doesn't know the ID: run /schedule list first, show the list, and ask which one to remove.

Output: "Removed schedule {id} ({description})."


/schedule status

Show all active schedules and their next run times. Equivalent to /schedule list with additional context about what each task does and when it last ran (if available).


Show full SKILL.md (412 more words)Show less

Session-Scoped vs. Cloud-Persistent Scheduling

Session-Scoped (CronCreate)

CronCreate schedules tasks that run during the current Claude Code session only. When the session ends (Claude Code closes or the conversation is reset), all session-scoped schedules are cleared.

Use session-scoped when:

  • Running checks during an active work session ("remind me every 30min to commit")
  • Polling for PR feedback while you're at the computer
  • Triggering skill runs during a long coding session
Cloud-Persistent (RemoteTrigger)

For tasks that need to survive machine sleep, network drops, or session restarts, use RemoteTrigger — a one-off cloud trigger that fires from Anthropic's infrastructure rather than your local session.

Use cloud-persistent when:

  • The task needs to run overnight or while you're away
  • You want notifications when you return to your machine
  • The interval spans multiple days or calendar dates

How to set up a one-off cloud trigger:

  1. Call RemoteTrigger with the desired delay and the command to run
  2. Claude Code registers the trigger in Anthropic's cloud scheduler
  3. When the trigger fires, it wakes a new Claude Code session and runs the command
  4. Results are delivered as a notification

Note: RemoteTrigger requires Claude Code with cloud features enabled (Pro or Team plan). CronCreate works on all plans but is session-scoped only.


Fringe Cases

CronCreate not available: Output error; suggest OS cron/Task Scheduler. Never fail silently. Ambiguous interval: Ask for clarification before proceeding. Raw cron expression: Accept without conversion; validate 5 fields. Every-minute schedule: Warn about 60 fires/hour; suggest 5m or 15m instead. No schedules when listing: "No active schedules. Use /schedule add to create one." Pause requested: Explain pause isn't supported; remove and recreate instead.


Contextual Gates

Disclosure: "Creating schedule: {command} at {cron expression}. OK?" Reversibility: amber — creates OS cron entries or CronCreate sessions (side effects outside the repo); undo with /schedule remove {id} Trust gates:

  • Any: confirms before creating; shows cron expression before accepting

Quality Gates

  • Always confirm before creating (CronCreate is a side effect)
  • Always show the cron expression alongside the natural-language description
  • Always provide the ID after creation so the user can remove it
  • Never leave a user unable to remove a schedule they created

Exit Protocol

/schedule does not produce a HANDOFF block. After each action, output a concise confirmation or list and wait for the next command.

  • After add: "Scheduled. ID: {id}. Use /schedule remove {id} to cancel."
  • After remove: "Removed schedule {id}."
  • After list or status: the active schedule list (or "No active schedules.")
  • After any error: a clear message and actionable suggestion.

© SethGammon, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in skills/schedule of SethGammon/Citadel.

  • SKILL.md
  • __benchmarks__/list-empty.md
  • __benchmarks__/natural-language-interval.md

Open the folder on GitHubat commit e41ff1d

Compare with similar skills

Schedule next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Schedule compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Schedule this skillSethGammon/Citadel922—~2.1kAutomated safety check: PassMIT
ScheduleTinyAGI/tinyagi3.6k—~1.4kAutomated safety check: PassMIT
Send User MessageTinyAGI/tinyagi3.6k—~829Automated safety check: PassMIT
Cron Opsczl9707/build-your-own-openclaw1.9k—~593Automated safety check: PassMIT
Wp Wpcli And OpsAutomattic/agent-skills2112 repos~988Automated safety check: PassNone
Ohdearohdearapp/ohdear-cli141—~1.1kAutomated safety check: PassMIT

Similar skills

  • Schedule

    TinyAGI/tinyagi

    Create, list, and delete scheduled tasks (recurring or one-time) that send messages to agents.

    3.6k GitHub stars~1.4k tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed
  • Send User Message

    TinyAGI/tinyagi

    Send a proactive message to a paired user via their channel (Discord, Telegram, or WhatsApp).

    3.6k GitHub stars~829 tokensUpdated 6 mo ago
    Productivity & AutomationAuto-check passed
  • Cron Ops

    czl9707/build-your-own-openclaw

    Create, list, and delete scheduled cron jobs. An agent skill from czl9707/build-your-own-openclaw.

    1.9k GitHub stars~593 tokensUpdated 3 mo ago
    Productivity & AutomationAuto-check passed
  • Wp Wpcli And Ops

    Automattic/agent-skills

    A skill your agent uses when working with WP-CLI (wp) for WordPress operations: safe search-replace, db export/import, plugin/theme/user/content management, cron, cache flushing, multisite, and…

    211 GitHub starsUsed in 2 repos~988 tokens
    Productivity & AutomationAuto-check passed
  • Ohdear

    ohdearapp/ohdear-cli

    Manage Oh Dear website monitoring using the ohdear CLI. An agent skill from ohdearapp/ohdear-cli.

    141 GitHub stars~1.1k tokensUpdated 1 mo ago
    Productivity & AutomationAuto-check passed
  • Jobs

    physiclaw/PhysiClaw

    A skill your agent uses when the task involves scheduling future work — any "remind me at …", "every weekday …", "check again in 30 min", or closing a fired cron job.

    386 GitHub stars~1.1k tokensUpdated 2 days ago
    Productivity & AutomationAuto-check passed

More from SethGammon/Citadel

All 48 skills in this repo
  • Create Skill

    SethGammon/Citadel

    Creates new skills from the user's repeating patterns. An agent skill from SethGammon/Citadel.

    922 GitHub stars~1.9k tokensUpdated 6 days ago
    Auto-check passed
  • Houseclean

    SethGammon/Citadel

    Cross-drive storage audit and cleanup. An agent skill from SethGammon/Citadel.

    922 GitHub stars~2.2k tokensUpdated 6 days ago
    Auto-check passed
  • Loop

    SethGammon/Citadel

    Bounded foreground repetition for the current session. An agent skill from SethGammon/Citadel.

    922 GitHub stars~1.4k tokensUpdated 6 days ago
    Auto-check passed
  • Triage

    SethGammon/Citadel

    GitHub issue and PR investigator. An agent skill from SethGammon/Citadel.

    922 GitHub stars~2.7k tokensUpdated 6 days ago
    Auto-check passed
  • Watch

    SethGammon/Citadel

    File sentinel that monitors the working directory for changes and marker comments, then auto-triggers appropriate skills.

    922 GitHub stars~2.9k tokensUpdated 6 days ago
    Auto-check passed
  • Archon

    SethGammon/Citadel

    Autonomous multi-session campaign agent. An agent skill from SethGammon/Citadel.

    922 GitHub stars~5.4k tokensUpdated 6 days ago
    Auto-check passed

Questions about Schedule

What does Schedule do?

Manages recurring and one-off scheduled tasks. An agent skill from SethGammon/Citadel. Schedule is an agent skill from SethGammon/Citadel. Manages recurring and one-off scheduled tasks.

When should I use Schedule?

Schedule fits situations like: tasks that involve Scheduled and recurring tasks.

How do I install Schedule in Claude Code?

Run `npx skills add SethGammon/Citadel --skill schedule -a claude-code`. Or copy the skill folder (skills/schedule in SethGammon/Citadel) into .claude/skills/schedule in your project. Claude Code loads it when a task matches its description.

How do I install Schedule in Codex?

Run `npx skills add SethGammon/Citadel --skill schedule -a codex`. Or copy the skill folder (skills/schedule in SethGammon/Citadel) into .agents/skills/schedule in your project. Codex loads it when a task matches its description.

Can I use Schedule in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add SethGammon/Citadel --skill schedule -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/schedule, .gemini/skills/schedule, .github/skills/schedule and .opencode/skills/schedule in your project.

What does Schedule need to run?

Going by SKILL.md and its folder, Schedule needs the command-line tools its instructions call (node).

Does Schedule access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Schedule safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Schedule use?

Schedule is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Schedule use?

About 2.1k tokens (SKILL.md is roughly 8.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Schedule?

Skills that share tags, products or a category with Schedule: Schedule (TinyAGI/tinyagi, 3.6k stars), Send User Message (TinyAGI/tinyagi, 3.6k stars), Cron Ops (czl9707/build-your-own-openclaw, 1.9k stars) and Wp Wpcli And Ops (Automattic/agent-skills, 211 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Schedule?

SethGammon (a GitHub user) maintains it in SethGammon/Citadel, which has 922 GitHub stars. The repository holds 48 skills in this directory. The repository was last updated on October 1, 2026.

Source: SethGammon/Citadel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.