Agent Skillsletta-ai/letta-code › scheduling-tasks

scheduling-tasks

GitHub

通过 letta cron CLI 创建、查看和管理定时任务,支持提醒、周期性检查和延迟消息。

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

Trigger Scenarios

用户请求设置提醒 用户需要周期性消息或检查 用户希望管理现有定时任务

Install

npx skills add letta-ai/letta-code --skill scheduling-tasks -g -y
More Options

Non-standard path

npx skills add https://github.com/letta-ai/letta-code/tree/main/src/skills/builtin/scheduling-tasks -g -y

Use without installing

npx skills use letta-ai/letta-code@scheduling-tasks

指定 Agent (Claude Code)

npx skills add letta-ai/letta-code --skill scheduling-tasks -a claude-code -g -y

安装 repo 全部 skill

npx skills add letta-ai/letta-code --all -g -y

预览 repo 内 skill

npx skills add letta-ai/letta-code --list

SKILL.md

Frontmatter
{
    "name": "scheduling-tasks",
    "description": "Schedules reminders and recurring tasks via the letta cron CLI. Use when the user asks to be reminded of something, wants periodic messages, or needs to manage scheduled tasks."
}

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.

When to Use This Skill

  • User asks to be reminded of something ("remind me to X at Y")
  • User wants a recurring check-in ("every morning ask me about X")
  • User wants a one-shot delayed message ("in 30 minutes, check on X")
  • User wants to see or cancel existing scheduled tasks

CLI Usage

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

Creating a Task

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 5m, 2h, 1d
--at <time> One-shot "3:00pm", "in 45m"
--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 ID (defaults to LETTA_CONVERSATION_ID from the current shell/session, otherwise "default")

Listing Tasks

letta cron list

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

Getting a Single Task

letta cron get <task-id>

Binding a Task to the Right Conversation

If exact routing matters, pass both --agent and --conversation explicitly.

letta cron add will otherwise fall back to LETTA_AGENT_ID and LETTA_CONVERSATION_ID from the current shell/session. Those values may be correct for the current chat, but they can also be inherited from surrounding tooling, another conversation, or an older shell.

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 "$AGENT_ID" \
  --conversation "$CONVERSATION_ID"

Then verify the binding explicitly:

letta cron list --agent "$AGENT_ID" --conversation "$CONVERSATION_ID"

Deleting Tasks

# Delete a specific task
letta cron delete <task-id>

# Delete all tasks for the current agent
letta cron delete --all

Examples

"Remind me every morning at 9am to walk the dog"

letta cron add \
  --name "dog-walk-reminder" \
  --description "Daily morning reminder to walk the dog" \
  --prompt "Hey! It's 9am — time to walk the dog." \
  --every 1d

Note: --every 1d fires once daily at midnight. For a specific time like 9am, use a raw cron expression:

letta cron add \
  --name "dog-walk-reminder" \
  --description "Daily 9am reminder to walk the dog" \
  --prompt "Hey! It's 9am — time to walk the dog." \
  --cron "0 9 * * *"

"Check on the deploy in 30 minutes"

letta cron add \
  --name "deploy-check" \
  --description "One-time check on deployment status" \
  --prompt "The user asked you to check on the deploy — ask them how it went." \
  --at "in 30m"

"Every weekday at 5pm, remind me to submit my timesheet"

letta cron add \
  --name "timesheet-reminder" \
  --description "Weekday 5pm timesheet reminder" \
  --prompt "Friendly reminder: don't forget to submit your timesheet before EOD!" \
  --cron "0 17 * * 1-5"

"What reminders do I have?"

letta cron list

If 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"

"Cancel the dog walk reminder"

First list to find the task ID, then delete:

letta cron list
# Find the task ID from the output, then:
letta cron delete <task-id>

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: One-shot tasks are garbage-collected 24 hours after firing.
  • Timezone: Tasks use the user's local timezone by default.
  • Default binding precedence: letta cron add uses --agent / --conversation first, then falls back to LETTA_AGENT_ID / LETTA_CONVERSATION_ID, then finally uses "default" for the conversation if no env var is present.
  • Scheduler requirement: Tasks only fire while a Letta session is running (a WS listener must be active). If no session is running, tasks will be marked as missed.
  • --at for specific times: --at "3:00pm" schedules a one-shot. If the time has already passed today, it schedules for tomorrow.
  • --every for daily: --every 1d fires daily at midnight. For a specific time of day, use --cron instead (e.g. --cron "0 9 * * *" for 9am daily).

Cron Expression Reference

For --cron, use standard 5-field cron syntax:

┌───────────── minute (0-59)
│ ┌───────────── hour (0-23)
│ │ ┌───────────── day of month (1-31)
│ │ │ ┌───────────── month (1-12)
│ │ │ │ ┌───────────── day of week (0-6, Sun=0)
│ │ │ │ │
* * * * *

Common patterns:

  • */5 * * * * — every 5 minutes
  • 0 */2 * * * — every 2 hours
  • 0 9 * * * — daily at 9am
  • 0 9 * * 1-5 — weekdays at 9am
  • 30 8 1 * * — 8:30am on the 1st of each month

Version History

  • b7b6330 Current 2026-07-05 20:11

Same Skill Collection

.skills/adding-models/SKILL.md
src/skills/builtin/acquiring-skills/SKILL.md
src/skills/builtin/context-doctor/SKILL.md
src/skills/builtin/converting-mcps-to-skills/SKILL.md
src/skills/builtin/creating-mods/SKILL.md
src/skills/builtin/creating-skills/SKILL.md
src/skills/builtin/customizing-commands/SKILL.md
src/skills/builtin/customizing-statusline/SKILL.md
src/skills/builtin/dispatching-coding-agents/SKILL.md
src/skills/builtin/editing-letta-code-desktop-preferences/SKILL.md
src/skills/builtin/finding-agents/SKILL.md
src/skills/builtin/generating-mod-envs/SKILL.md
src/skills/builtin/image-generation/SKILL.md
src/skills/builtin/initializing-memory/SKILL.md
src/skills/builtin/messaging-agents/SKILL.md
src/skills/builtin/migrating-memory/SKILL.md
src/skills/builtin/modifying-the-harness/SKILL.md
src/skills/builtin/syncing-memory-filesystem/SKILL.md

Metadata

Files
0
Version
b7b6330
Hash
03386ff3
Indexed
2026-07-05 20:11

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-09 05:50
浙ICP备14020137号-1 $Гость$