src/skills/builtin/scheduling-tasks/SKILL.md
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.
npx skillsauth add letta-ai/letta-code scheduling-tasksInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
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 | 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 env var — usually already set) |
| --conversation <id> | Conversation ID (defaults to LETTA_CONVERSATION_ID or "default") |
letta cron list
Optional filters: --agent <id>, --conversation <id>
letta cron get <task-id>
# Delete a specific task
letta cron delete <task-id>
# Delete all tasks for the current agent
letta cron delete --all
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 * * *"
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"
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"
letta cron list
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>
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:
Include context about what the user originally asked for, so you can give a helpful response when the prompt arrives.
--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).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 minutes0 */2 * * * — every 2 hours0 9 * * * — daily at 9am0 9 * * 1-5 — weekdays at 9am30 8 1 * * — 8:30am on the 1st of each monthtools
# Skill Execute a skill within the main conversation When users ask you to perform tasks, check if any of the available skills match. Skills provide specialized capabilities and domain knowledge. When users reference a "slash command" or "/<something>" (e.g., "/commit", "/review-pr"), they are referring to a skill. Use this tool to invoke it. How to invoke: - Use this tool with the skill name and optional arguments - Examples: - `skill: "pdf"` - invoke the pdf skill - `skill: "commit", a
documentation
Guide for working in parallel with other agents. Use when another agent is already working in the same directory, or when you need to work on multiple features simultaneously. Covers git worktrees as the recommended approach.
testing
Manage git-backed memory repos. Load this skill when working with git-backed agent memory, setting up remote memory repos, resolving sync conflicts, or managing memory via git workflows.
testing
Search past messages to recall context. Use when you need to remember previous discussions, find specific topics mentioned before, pull up context from earlier in the conversation history, or find which agent discussed a topic.