Agent skill

Scheduling Tasks

by letta-ai in letta-ai/letta-code

Advanced scheduling through the letta cron CLI for other conversations, computers, run history, and schedule replacement.

Apache-2.0Auto-check passedProductivity & Automation

Install Scheduling Tasks

skills CLI
$ npx skills add letta-ai/letta-code --skill scheduling-tasks -a claude-code

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

GitHub CLI
$ gh skill install letta-ai/letta-code scheduling-tasks --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/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-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
scheduling-tasks
GitHub stars
3.6k
Token cost
~2.4k tokens
SKILL.md length
1,097 words
Files
1
Skills in repo
25
Repo updated
First seen
Licence
Apache-2.0

At a glance

Advanced scheduling through the letta cron CLI for other conversations, computers, run history, and schedule replacement.

  • Tasks that involve Scheduled and recurring tasks
  • SKILL.md covers When to Use This Skill, Where Schedules Run, CLI Usage and Timezones, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

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.

When your agent uses it

  • Tasks that involve Scheduled and recurring tasks

Example prompts

  • “/scheduling-tasks”

What it can do on your machine

Read from SKILL.md and the folder at commit 253a3bc. 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

    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.

  • 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

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.

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

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 letta-ai/letta-code at commit 253a3bc, republished under its Apache-2.0 licence (© letta-ai). 1,097 words, ~2,365 tokens.

Download SKILL.mdSave it as .claude/skills/scheduling-tasks/SKILL.md (or your agent's skills folder).
name
scheduling-tasks
description
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.

Scheduling Tasks

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.

When to Use This Skill

  • The task should run in a fresh, default, or different conversation
  • The task needs a specific connected computer
  • You need run history, replacement, or broader schedule inspection
  • Wake cannot see or manage the schedule you need

Where Schedules Run

Execution determines schedule ownership; there is no runner selection flag:

  • In a managed Cloud sandbox, schedules are durable Cloud schedules and run in the agent's Cloud sandbox.
  • On a user-managed computer or self-hosted runtime, schedules are local and fire only while a Letta session is running there.

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.

CLI Usage

All commands go through letta cron via the Bash tool. Output is JSON.

Creating a Task
bash
letta cron add --name <short-name> --description <text> --prompt <text> <schedule>

Required flags:

FlagDescription
--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):

FlagTypeExample
--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:

FlagDescription
--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
--onceMark --at as one-shot (already the default for --at)
Listing Tasks
bash
letta cron list

Optional filters: --agent <id>, --conversation <id>

Getting a Single Task

get accepts an ID or name:

bash
letta cron get <id-or-name> [--agent <id>]
Reading Run History
bash
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.

Binding a Task to the Right Conversation

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:

bash
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 self

Then verify the binding explicitly:

bash
letta cron list --agent "$LETTA_AGENT_ID" --conversation self
Deleting or Replacing Tasks

delete accepts an ID or name; remove is an alias.

bash
# 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.

Timezones

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.

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

Examples

"Remind me every morning at 9am to walk the dog" (user in UTC−7)
bash
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.

"Check on the deploy in 30 minutes"
bash
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 self
"Every weekday at 5pm, remind me to submit my timesheet" (user in UTC−7)
bash
letta 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.

"What reminders do I have?"
bash
letta cron list

If you need to confirm the exact conversation a task is bound to, list with explicit filters instead:

bash
letta cron list --agent "$AGENT_ID" --conversation "$CONVERSATION_ID"
"Cancel the dog walk reminder"
bash
letta cron delete dog-walk-reminder

Writing Good Prompts

The --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:

  • Good: "The user asked to be reminded to review the PR for the auth refactor. Check if it's still open and nudge them."
  • Bad: "reminder"

Include context about what the user originally asked for, so you can give a helpful response when the prompt arrives.

Important Notes

  • Minimum granularity: 1 minute. Intervals under 60 seconds are rounded up.
  • Recurring tasks: No longer auto-expire. They remain active until explicitly cancelled.
  • One-shot cleanup (local runner): One-shot local tasks are garbage-collected 24 hours after firing.
  • Default binding: 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.
  • Local scheduler requirement: Local schedules only fire while a Letta session is running on their computer; fires while no session runs are marked as missed. Cloud schedules fire from the cloud regardless.
  • --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.
  • Cloud schedule creation failures are loud: if creating a Cloud schedule fails in a managed Cloud sandbox, no schedule is created; it never falls back to a local schedule.

Cron Expression Reference

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 minutes
  • 0 */2 * * * — every 2 hours
  • 0 9 * * * — daily at 9:00 UTC
  • 0 9 * * 1-5 — weekdays at 9:00 UTC
  • 30 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

Files

Just SKILL.md in src/skills/builtin/scheduling-tasks of letta-ai/letta-code.

Open the folder on GitHubat commit 253a3bc

Compare with similar skills

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.

Scheduling Tasks compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Scheduling Tasks this skillletta-ai/letta-code3.6k—~2.4kAutomated safety check: PassApache-2.0
Cron Opsczl9707/build-your-own-openclaw1.9k—~593Automated safety check: PassMIT
Wp Wpcli And OpsAutomattic/agent-skills2112 repos~988Automated safety check: PassNone
Superset Automatesuperset-sh/superset15k—~1.4kAutomated safety check: PassCustom licence
Action Items Todoistmgonto/executive-assistant-skills118—~3.8kAutomated safety check: NotesNone
Cron Watchdog Debugvercel-labs/vercel-openclaw-archived117—~1.6kAutomated safety check: PassMIT

Similar skills

  • 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
  • Superset Automate

    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.

    15k GitHub stars~1.4k tokensUpdated today
    Productivity & AutomationAuto-check passed
  • Action Items Todoist

    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.

    118 GitHub stars~3.8k tokensUpdated 7 mo ago
    Productivity & AutomationAuto-check: notes
  • Cron Watchdog Debug

    vercel-labs/vercel-openclaw-archived

    Official

    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.

    117 GitHub stars~1.6k tokensUpdated 4 mo ago
    Productivity & AutomationAuto-check passed
  • Symfony Scheduler

    dev-toolings/superpowers-symfony

    Schedule recurring tasks with the Symfony Scheduler component (native since 7.x); define schedules, triggers, and integrate with Messenger

    223 GitHub stars~526 tokensUpdated 4 days ago
    Productivity & AutomationAuto-check: notes

More from letta-ai/letta-code

All 25 skills in this repo
  • Creating Skills

    letta-ai/letta-code

    Guide for creating effective skills. An agent skill from letta-ai/letta-code.

    3.6k GitHub stars~4.6k tokensUpdated today
    Auto-check passed
  • Generating Mod Envs

    letta-ai/letta-code

    Generates and reviews mod learning env JSON files for Letta Code local mods.

    3.6k GitHub stars~1.5k tokensUpdated today
    Auto-check passed
  • Initializing Memory

    letta-ai/letta-code

    Comprehensive guide for initializing or reorganizing agent memory.

    3.6k GitHub stars~4.8k tokensUpdated today
    Auto-check passed
  • Self Configuration

    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.

    3.6k GitHub stars~7k tokensUpdated today
    Auto-check passed
  • Browser Use

    letta-ai/letta-code

    Control a real browser to navigate pages, click, type, fill forms, inspect rendered UI, take screenshots, or record video.

    3.6k GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • Creating Mods

    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.

    3.6k GitHub stars~2.5k tokensUpdated today
    Auto-check passed

Works with

Questions about Scheduling Tasks

What does Scheduling Tasks do?

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.

When should I use Scheduling Tasks?

Scheduling Tasks fits situations like: tasks that involve Scheduled and recurring tasks.

How do I install Scheduling Tasks in Claude Code?

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.

How do I install Scheduling Tasks in Codex?

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.

Can I use Scheduling Tasks 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 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.

What does Scheduling Tasks need to run?

SKILL.md names no scripts, command-line tools or credentials: Scheduling Tasks is instructions for the agent only.

Does Scheduling Tasks 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 Scheduling Tasks 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 Scheduling Tasks use?

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.

How many tokens does Scheduling Tasks use?

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.

What are the alternatives to Scheduling Tasks?

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.

Who maintains Scheduling Tasks?

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.