Cron Ops
czl9707/build-your-own-openclaw
Create, list, and delete scheduled cron jobs. An agent skill from czl9707/build-your-own-openclaw.
Advanced scheduling through the letta cron CLI for other conversations, computers, run history, and schedule replacement.
$ npx skills add letta-ai/letta-code --skill scheduling-tasks -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install letta-ai/letta-code scheduling-tasks --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/skills/builtin/scheduling-tasks .claude/skills/scheduling-tasks && rm -rf skills-srcUse ~/.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/
Install the "scheduling-tasks" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/scheduling-tasks into .claude/skills/scheduling-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scheduling-tasks", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/scheduling-tasksType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add letta-ai/letta-code --skill scheduling-tasks -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install letta-ai/letta-code scheduling-tasks --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/skills/builtin/scheduling-tasks .agents/skills/scheduling-tasks && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "scheduling-tasks" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/scheduling-tasks into .agents/skills/scheduling-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scheduling-tasks", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add letta-ai/letta-code --skill scheduling-tasks -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install letta-ai/letta-code scheduling-tasks --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/skills/builtin/scheduling-tasks .cursor/skills/scheduling-tasks && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "scheduling-tasks" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/scheduling-tasks into .cursor/skills/scheduling-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scheduling-tasks", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/letta-ai/letta-code.git --path src/skills/builtin/scheduling-tasks--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add letta-ai/letta-code --skill scheduling-tasks -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install letta-ai/letta-code scheduling-tasks --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/skills/builtin/scheduling-tasks .gemini/skills/scheduling-tasks && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "scheduling-tasks" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/scheduling-tasks into .gemini/skills/scheduling-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scheduling-tasks", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install letta-ai/letta-code scheduling-tasksInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add letta-ai/letta-code --skill scheduling-tasks -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/skills/builtin/scheduling-tasks .github/skills/scheduling-tasks && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "scheduling-tasks" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/scheduling-tasks into .github/skills/scheduling-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scheduling-tasks", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add letta-ai/letta-code --skill scheduling-tasks -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install letta-ai/letta-code scheduling-tasks --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/letta-ai/letta-code.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/skills/builtin/scheduling-tasks .opencode/skills/scheduling-tasks && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "scheduling-tasks" agent skill from https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/scheduling-tasks into .opencode/skills/scheduling-tasks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "scheduling-tasks", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
scheduling-tasksAdvanced scheduling through the letta cron CLI for other conversations, computers, run history, and schedule replacement.
Scheduling Tasks is an agent skill from letta-ai/letta-code. Advanced scheduling through the letta cron CLI for other conversations, computers, run history, and schedule replacement. Use Wake for ordinary create/list/cancel operations in the current conversation.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Productivity & Automation, covering Scheduled and recurring tasks. It works with Letta. The repository describes itself as: Stateful agents that are like people, with memory, identity, and the ability to learn and adapt. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 253a3bc. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Scheduling Tasks loads about 2.4k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 1,097 words of instructions outside code blocks.
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.
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.
The full file from letta-ai/letta-code at commit 253a3bc, republished under its Apache-2.0 licence (© letta-ai). 1,097 words, ~2,365 tokens.
.claude/skills/scheduling-tasks/SKILL.md (or your agent's skills folder).This skill lets you create, list, and manage scheduled tasks using the letta cron CLI. Scheduled tasks send a prompt to the agent on a timer — useful for reminders, periodic check-ins, and deferred follow-ups.
For ordinary one-shot or recurring work in the current conversation, use Wake instead. Wake is self-bound and covers create, list, and cancel without routing choices.
Execution determines schedule ownership; there is no runner selection flag:
From a managed Cloud sandbox, --computer <deviceId> can run the scheduled work on a specific connected computer. Get the device ID from letta computers list. If that computer is offline at fire time, execution falls back to the Cloud sandbox. Local execution cannot target another computer.
Creation and execution follow those rules, while management commands still show and cancel both local and Cloud inventory. This keeps schedules created by older CLI versions visible without changing where new schedules run.
All commands go through letta cron via the Bash tool. Output is JSON.
letta cron add --name <short-name> --description <text> --prompt <text> <schedule>Required flags:
| Flag | Description |
|---|---|
--name <text> | Short identifier for the task (e.g. "dog-walk-reminder") |
--description <text> | Human-readable description of what the task does |
--prompt <text> | The message that will be sent to the agent when the task fires |
Schedule (pick one):
| Flag | Type | Example |
|---|---|---|
--every <interval> | Recurring (cron shorthand) | 5m, 2h, 1d |
--at <time> | One-shot | "in 45m", "2026-09-24T09:00:00-07:00" |
--cron <expr> | Raw cron (recurring) | "0 9 * * 1-5" |
Optional flags:
| Flag | Description |
|---|---|
--agent <id> | Agent ID (defaults to LETTA_AGENT_ID from the current shell/session) |
--conversation <id> | Conversation target: omit or pass new for a fresh conversation per fire; pass self for the current conversation; pass default for the agent default; or pass a concrete ID |
--computer <id> | From managed Cloud, execute on a specific connected computer |
--once | Mark --at as one-shot (already the default for --at) |
letta cron listOptional filters: --agent <id>, --conversation <id>
get accepts an ID or name:
letta cron get <id-or-name> [--agent <id>]letta cron runs --id <task-id> [--limit <n>] [--agent <id>]For local run history, --run-id <id> selects one run. Cloud history ignores that flag.
If exact routing matters, pass both --agent and --conversation explicitly.
letta cron add falls back to LETTA_AGENT_ID for the agent. An omitted --conversation means "new", so every fire gets a fresh conversation. Pass --conversation self to capture the current LETTA_CONVERSATION_ID, --conversation default for the agent default, or a concrete conversation ID.
Safest pattern:
letta cron add \
--name "email-check" \
--description "Daily email summary in this conversation" \
--prompt "Check the user's email and post a summary here." \
--cron "0 10 * * *" \
--agent "$LETTA_AGENT_ID" \
--conversation selfThen verify the binding explicitly:
letta cron list --agent "$LETTA_AGENT_ID" --conversation selfdelete accepts an ID or name; remove is an alias.
# Delete a specific task
letta cron delete <id-or-name> [--agent <id>]
# Delete all tasks for one agent
letta cron delete --all --agent "$AGENT_ID"In-place editing is not available. To change a schedule, create and verify the replacement before deleting the old one.
Cloud-schedule recurring expressions (both --cron and the expression --every compiles to) are interpreted in UTC. Users say times in their local timezone, so convert before writing the expression: a user in PDT asking for "9am daily" needs --cron "0 16 * * *" (9am PDT = 16:00 UTC; 17:00 during PST). State the conversion in your reply so the user can catch a wrong assumption. Local-runner recurring tasks use the computer's local timezone.
For a one-shot calendar request such as "tomorrow at 9am," resolve the date in the user's timezone and pass --at an RFC 3339 timestamp with an explicit offset. Infer a reasonable timezone from available context instead of asking a redundant follow-up. State the timezone you used in the confirmation (for example, "Scheduled for 9:00 AM PT") so the user can correct the assumption. A bare clock such as --at "9:00am" uses the current process timezone, which may be UTC in Cloud; use it only when that is the intended timezone. Relative values such as --at "in 45m" do not need a timezone.
letta cron add \
--name "dog-walk-reminder" \
--description "Daily 9am (America/Los_Angeles) reminder to walk the dog" \
--prompt "Hey! It's 9am — time to walk the dog." \
--cron "0 16 * * *"Note: --every 1d fires daily at midnight (UTC on a Cloud schedule), so use --cron for a specific time of day, converting the user's local time to UTC first.
letta cron add \
--name "deploy-check" \
--description "One-time check on deployment status" \
--prompt "Check the deployment status and report the result here." \
--at "in 30m" \
--agent "$LETTA_AGENT_ID" \
--conversation selfletta cron add \
--name "timesheet-reminder" \
--description "Weekday 5pm (America/Los_Angeles) timesheet reminder" \
--prompt "Friendly reminder: don't forget to submit your timesheet before EOD!" \
--cron "0 0 * * 2-6"Note the day shift: 5pm UTC−7 is midnight UTC the next day, so weekdays Mon–Fri become 2-6. Always re-derive both the hour and the day fields after converting.
letta cron listIf you need to confirm the exact conversation a task is bound to, list with explicit filters instead:
letta cron list --agent "$AGENT_ID" --conversation "$CONVERSATION_ID"letta cron delete dog-walk-reminderThe --prompt value is what gets sent to you (the agent) when the task fires. Write it as a message that will make sense when you receive it later, with enough context to act on:
Include context about what the user originally asked for, so you can give a helpful response when the prompt arrives.
letta cron add uses --agent first, then LETTA_AGENT_ID. Omit --conversation for a fresh conversation per fire; use --conversation self to capture LETTA_CONVERSATION_ID explicitly.--at for specific times: prefer RFC 3339 with an explicit offset. A bare --at "3:00pm" uses the process timezone and schedules tomorrow if that time has already passed there.For --cron, use numeric 5-field cron syntax (named days/months, seconds, ?, L, and # are not supported):
┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sun=0)
│ │ │ │ │
* * * * *Common patterns (UTC on Cloud schedules):
*/5 * * * * — every 5 minutes0 */2 * * * — every 2 hours0 9 * * * — daily at 9:00 UTC0 9 * * 1-5 — weekdays at 9:00 UTC30 8 1 * * — 8:30 UTC on the 1st of each month© letta-ai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in src/skills/builtin/scheduling-tasks of letta-ai/letta-code.
Open the folder on GitHubat commit 253a3bc
Scheduling Tasks 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Scheduling Tasks this skillletta-ai/letta-code | 3.6k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Cron Opsczl9707/build-your-own-openclaw | 1.9k | — | ~593 | Automated safety check: Pass | MIT | |
| Wp Wpcli And OpsAutomattic/agent-skills | 211 | 2 repos | ~988 | Automated safety check: Pass | None | |
| Superset Automatesuperset-sh/superset | 15k | — | ~1.4k | Automated safety check: Pass | Custom licence | |
| Action Items Todoistmgonto/executive-assistant-skills | 118 | — | ~3.8k | Automated safety check: Notes | None | |
| Cron Watchdog Debugvercel-labs/vercel-openclaw-archived | 117 | — | ~1.6k | Automated safety check: Pass | MIT |
czl9707/build-your-own-openclaw
Create, list, and delete scheduled cron jobs. An agent skill from czl9707/build-your-own-openclaw.
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…
superset-sh/superset
Turns a recurring chore into a scheduled or event-triggered Superset agent, drafting its prompt, picking a target and trigger, and reviewing the first run.
mgonto/executive-assistant-skills
Extract action items from today's Granola/Grain meetings, create Todoist tasks, complete fulfilled tasks, and draft meeting-triggered follow-up emails.
vercel-labs/vercel-openclaw-archived
Cron and watchdog debugging for vercel-openclaw: Vercel Cron auth, persisted OpenClaw jobs, cron wake keys, token refresh, restore oracle, hot spare, and watchdog reports.
dev-toolings/superpowers-symfony
Schedule recurring tasks with the Symfony Scheduler component (native since 7.x); define schedules, triggers, and integrate with Messenger
letta-ai/letta-code
Guide for creating effective skills. An agent skill from letta-ai/letta-code.
letta-ai/letta-code
Generates and reviews mod learning env JSON files for Letta Code local mods.
letta-ai/letta-code
Comprehensive guide for initializing or reorganizing agent memory.
letta-ai/letta-code
Inspect or modify Letta Code's own memory, model, context window, system prompt, compaction, permissions, toolsets, mods, skills, channels, schedules, agent secrets, and local runtime settings.
letta-ai/letta-code
Control a real browser to navigate pages, click, type, fill forms, inspect rendered UI, take screenshots, or record video.
letta-ai/letta-code
Creates and edits trusted local Letta Code mods, including tools, slash commands, local-only model providers, lifecycle/turn events, scoped conversation helpers, panels, and capability-gated behavior.
Works with
Categories
Advanced scheduling through the letta cron CLI for other conversations, computers, run history, and schedule replacement. Scheduling Tasks is an agent skill from letta-ai/letta-code. Advanced scheduling through the letta cron CLI for other conversations, computers, run history, and schedule replacement.
Scheduling Tasks fits situations like: tasks that involve Scheduled and recurring tasks.
Run `npx skills add letta-ai/letta-code --skill scheduling-tasks -a claude-code`. Or copy the skill folder (src/skills/builtin/scheduling-tasks in letta-ai/letta-code) into .claude/skills/scheduling-tasks in your project. Claude Code loads it when a task matches its description.
Run `npx skills add letta-ai/letta-code --skill scheduling-tasks -a codex`. Or copy the skill folder (src/skills/builtin/scheduling-tasks in letta-ai/letta-code) into .agents/skills/scheduling-tasks in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add letta-ai/letta-code --skill scheduling-tasks -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/scheduling-tasks, .gemini/skills/scheduling-tasks, .github/skills/scheduling-tasks and .opencode/skills/scheduling-tasks in your project.
SKILL.md names no scripts, command-line tools or credentials: Scheduling Tasks is instructions for the agent only.
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.
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.
Scheduling Tasks is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Scheduling Tasks: Cron Ops (czl9707/build-your-own-openclaw, 1.9k stars), Wp Wpcli And Ops (Automattic/agent-skills, 211 stars), Superset Automate (superset-sh/superset, 15k stars) and Action Items Todoist (mgonto/executive-assistant-skills, 118 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
letta-ai (a GitHub organization) maintains it in letta-ai/letta-code, which has 3,552 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 9, 2026.
Source: letta-ai/letta-code on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.