Scheduled tasks let you queue prompts now and have the agent execute them at a specific time. This is useful for deferring work to off-peak hours, batching instructions before a deadline, or preparing sessions in advance.
The clock icon highlights when a schedule is active, and a banner appears above the prompt input showing the scheduled time:
Scheduled for Apr 10, 3:00 PM — prompts will queue until then
Once a schedule is set, submitting a prompt queues it instead of sending it immediately. The submit button changes to a + icon (the same as when the agent is running) to indicate that prompts are being queued.
Queued prompts appear as chips labelled Queued above the prompt input. You can remove any queued prompt by clicking its x button, click a chip to edit it, or drag and drop chips to reorder them.
You can queue as many prompts as you need. They are persisted to disk so they survive browser refreshes and server restarts.
The server runs a heartbeat every 60 seconds, aligned to the top of each minute. When the heartbeat detects a schedule whose time has passed, it:
The agent then processes the prompts as if you had submitted them manually. Progress appears in the session view and the sidebar status indicator updates to show the session is running.
If the server or agent has restarted since the schedule was created, the heartbeat automatically creates a new agent session before sending the prompts.
Click the clock icon again to reopen the schedule modal. The current scheduled time is pre-filled. Change the time and click Update.
To remove a schedule:
This removes the schedule but keeps any queued prompts. Because the schedule is no longer active, the queued prompts are submitted to the agent immediately — just as if you had typed and sent them without a schedule.
Schedules are stored per session as a schedule.json file:
~/.braide/projects/<project-id>/sessions/<session-id>/schedule.json
The file contains:
| Field | Type | Description |
|---|---|---|
scheduledAt | string | ISO-8601 datetime when the prompts should be sent |
enabled | boolean | Whether the schedule is active |
prompts | array | List of queued prompts with their text and optional command blocks |
Because schedules are persisted to disk, they survive server restarts. The server-side heartbeat picks them up automatically on boot.