docs/craft/product/scheduled-tasks.md
Let users hand Craft a recurring job and walk away. A Scheduled Task is a saved prompt + schedule pair: at each fire time, the system spins up a fresh Craft session, runs the prompt, and records what happened. From the user's perspective, the task is "Craft, on a timer" — same agent, same skills, same context, just kicked off by the clock instead of a person.
Example tasks a user should be able to set up in V1:
The bar for V1: a user can create a task in the Craft UI, see it run on schedule without their browser open, and click into any past run to see exactly what the agent did.
Lives under /craft/v1/tasks (new section in the existing Craft left nav).
/craft/v1/tasksThe landing page. A table of the user's tasks:
Empty state: a short explainer + a "Create scheduled task" CTA with two or three example prompts the user can start from.
Top-right primary action: Create scheduled task → opens the editor.
/craft/v1/tasks/new and /craft/v1/tasks/:id/editA single form, not a wizard. Fields:
Save → returns to the list. Save and run now → returns to the list and immediately kicks off a run.
/craft/v1/tasks/:idTwo sections stacked:
Pagination: show the last 50 by default with a "Load more" button.
A run is a Craft session. Clicking a run from the history table opens that
session in the standard /craft/v1/session/:id view the user already knows: the
full transcript, artifacts, search calls, approvals, etc. We add a small banner at
the top: "This session was started by scheduled task Name at time. ← Back to
task."
No new run-detail page is needed — the existing session view is the run detail view.
The run row shows status failed with the error class (sandbox couldn't start, agent errored, timeout, etc.). Clicking through opens the session view with the failure in context. No retries in V1 — the user can manually click Run now if they want to retry, or wait for the next scheduled fire.
Run status is awaiting approval. The user gets the same in-app notification they get for interactive approvals. Approving from the approvals inbox resumes the run; the run row updates accordingly. (Detail in the approvals doc.)