Working with code
Scheduled tasks: run a prompt on a cron timetable
Run a prompt every night, every Monday or every hour: into an existing session or a fresh one from a template, with run history and catch-up for missed runs.
Feature page: Scheduled tasks — screenshots, things you can do with it and how other products compare.
Scheduled tasks in the sidebar (next to Global settings) runs a prompt for you on a timetable: a nightly dependency check, a Monday report, a test run every hour. Each task has a name, a cron expression (0 9 * * 1-5, @hourly, …; the field suggests common ones and shows the expression in plain words plus the next three run times), a time zone (IANA name, your own by default), an on/off switch and one of two actions:
- Send a prompt to an existing Session. Sent right away when the Session is idle; queued behind the running turn when it is busy (through the session's Queue); a stopped Session is resumed first. A Session in error refuses it.
- Start a new Session from a template. Provider, repositories, the same settings as the New Session form (model, instructions, MCP servers, verification, Docker…), the first prompt, and Stop the Session when the turn ends (on by default) so boxes do not pile up: the transcript and snapshots stay, and you can resume it like any stopped Session.
Inside a session, the Scheduled tab shows the tasks that prompt that session (the tab counts them) and lets you add or edit them there; new ones target the session, and the sidebar page still lists them all.
The scheduler lives in the Control Plane, not in the system's cron, so it works the same in sessionboxer service, Docker Compose and the desktop app, and the page can show what happened. Run now runs a task on the spot, on or off. History lists the last 100 runs with the trigger (schedule, catch-up or manual), status, duration, what was done, the error if any and a link to the Session. A run counts as finished when the turn ends (its verification and anything queued behind it included); a failure marks the task in the list and the sidebar entry, and sends a push notification if you have them on. If the Control Plane was not running when a task was due, Runs missed while the Control Plane was off decides: Skip them (default, recorded as skipped) or Run once when the Control Plane is back (one catch-up run, however many were missed).
This chapter is generated from docs/GUIDE.md in the Sessionboxer repository. Found a mistake? Open an issue.