Scheduling
Scheduling
BabyClaw has a built-in scheduler that lets the agent create tasks to run at specific times or on a recurring basis. You don't configure schedules in the config file -- instead, you just ask the agent to schedule something in conversation.
How it works
The agent has access to scheduler tools (create_schedule, list_schedules, cancel_schedule) during conversations. When you say something like "remind me to check email every morning at 9am", the agent creates a recurring schedule using these tools.
When a schedule fires, the agent runs a turn with the scheduled prompt, and the result gets delivered to the original chat (or a different chat if cross-chat delivery was set up).
One-off schedules
Ask the agent to do something at a specific time:
"Remind me to call the dentist tomorrow at 2pm"
"Send me a weather report at 6am on Saturday"
The agent creates a one-off schedule that runs once and then is done.
Recurring schedules
Ask for something to repeat on a schedule:
"Every Monday at 9am, check my email and summarize anything important"
"Every day at 6pm, give me a summary of what we worked on today"
Recurring schedules use cron expressions under the hood. The agent handles the cron syntax -- you just describe when you want it to run. The minimum interval for recurring schedules is 5 minutes.
Timezone
Schedules use the timezone from your config:
{
"scheduler": {
"timezone": "America/New_York"
}
}
If you don't set this, it defaults to UTC. The agent also has a get_current_time tool that returns the current time in the configured timezone, so it knows what "tomorrow at 9am" means in your local time.
Cross-chat delivery
If you've linked chats with aliases, you can ask the agent to deliver scheduled messages to a different chat:
"Every morning at 8am, send a good morning message to family-chat"
The schedule runs in the context of the chat where you created it, but the output gets delivered to the target chat.
Managing schedules
You can manage schedules through conversation or slash commands:
In conversation:
"What schedules do I have?"
"Cancel the morning email check"
Telegram command:
/schedules
This lists all active schedules for the current chat.
How scheduled runs work
When a schedule fires:
- The agent starts a turn with the scheduled prompt
- It has access to all its normal tools (workspace, shell, web search, etc.)
- If the run produces output, it's sent to the target chat
- The run is recorded in the database with a status (succeeded or failed)
- If a run fails, it retries up to 3 times with delays between attempts
For recurring schedules, if the previous run is still going when the next one is due, the new run is skipped to prevent overlap.
Old schedule runs are cleaned up after 30 days.