Skip to content

Go to the docs contents

Scheduled jobs

A command run at a set time: an import every night, a cleanup, a report. Every run is tracked, and your agent is notified of a failure.

Updated November 9, 2026.

View as Markdown

You, to your agent: Run the sales import every day at 6 am.

What your agent writes

Your agent writes it in while.yaml, at the root of your app:

while.yaml
crons:
  - name: cleanup
    title: Nightly cleanup
    schedule: "0 3 * * *"
    command: [node, cleanup.js]
    timezone: Europe/Paris
    timeout_seconds: 600
    retries: 1
    concurrency: forbid

What your app receives

Your app receives these environment variables at every deployment:

VariableWhat it holds
WHILE_CRONThe job’s name.
WHILE_TRIGGERHow this run was started: scheduled, manual or catch_up.
WHILE_CATCH_UP_STARTThe start of the period to catch up.
WHILE_CATCH_UP_ENDIts end.

When to use it

For what starts at a fixed time: loading an external API every night, cleaning up, writing a report. Nothing is reserved between two runs, and a run lasts 6 hours at most.

How it works

A scheduled job runs a command at a fixed time, with a service’s image and variables, or with an image built for it. Each run is tracked, and a failure or a missed run wakes the agent.

What to know

The schedule follows cron syntax, in Paris time by default (timezone). A task succeeds when it exits with code 0, and any other code is a failure. Each run keeps its duration, its exit code, the last lines of its log and the summarized error.

A run that exceeds timeout_seconds (600 by default, 6 hours at most) is stopped, and retries restarts it within the same run (0 by default). concurrency decides overlaps: forbid, the default, refuses that a run overlaps another, allow permits it, and replace stops the running one. A run started by hand at the moment a scheduled run starts can still overlap it.

Each run knows how it was started: WHILE_TRIGGER is scheduled, manual or catch_up. A catch-up receives its period in WHILE_CATCH_UP_START and WHILE_CATCH_UP_END, and the command only processes it. Your agent reruns a task, or catches up a period, with the run_task tool.

Pricing

These prices are the same on every plan, excluding VAT:

ResourcePriceDetails
CPU and memory€17 per vCPU·month and €8.50 per GiB·monthapps by usage, caches by reservation

Your agent’s MCP tools

Your agent handles it with the list_tasks and run_task tools.

Guides

Connect your agent, it takes care of the rest

To paste into your agent

Read while.sh/agents, then deploy my app with while.

Copy the instructions

No account needed to try: your app is live right away. To keep it, sign in.

A project for your company? Talk to the team: hello@while.sh