# Routines

> Put recurring work on a schedule — how a routine runs, what it produces, and why an unattended run will not send anything.

A **routine** is an instruction an agent carries out on a schedule, whether or not you have Endue open.

## When to use it

When the same request comes round again: a morning inbox digest, a Monday report, an overnight check for something that should not have changed. If you have asked an agent the same thing three times, it is a routine.

## Create one

The simplest way is to ask. In a conversation with the agent, say what should happen and when — *"do this every weekday at 8am"* — and it creates the routine, which you can then review.

<Steps>

1. **Get the task right first.** Run it once by hand. A routine repeats whatever you asked for, including the ambiguity.

2. **Set the schedule.** Routines run on a repeating schedule with a timezone — every weekday at 08:00 in Asia/Seoul, the first of the month, every four hours.

3. **Say where the output goes.** Usually an [artifact](/docs/capabilities/artifacts/), which you will find waiting with a notification pointing at it.

4. **Watch the first few runs.** The gap between what you meant and what the agent does shows up immediately, and is cheapest to fix then.

</Steps>

## What happens on each run

The routine fires, the agent runs the instruction as though you had sent it, and the result lands in your workspace. You get a notification when it finishes, and another if it fails — see [Notifications and inbox](/docs/work/inbox/).

A routine that keeps failing is paused, and you are told. That is deliberate: a broken routine that retries every hour for a week is worse than one that stops and says so.

## Nobody is there to approve

This is the most important thing to understand about scheduled work.

An unattended run cannot ask you anything. An action that would normally stop for [approval](/docs/work/approvals/) — sending an email, posting to a channel, deleting something — is **refused**, not queued.

Design around it:

| Instead of | Ask for |
| --- | --- |
| "Email me the summary" | "Write the summary as an artifact" — the notification brings you to it |
| "Post the digest to Slack" | An artifact you post yourself once you have read it |
| "Reply to anything urgent" | "Draft replies to anything urgent" — drafting is not gated |

The same applies to [questions](/docs/work/questions/): a routine that needs a decision has nobody to ask, so make the instruction specific enough not to need one.

<Aside type="tip" title="Pin the model on the routine">
  A routine can use its own model, independent of the agent's default. That keeps
  a scheduled job's cost and behavior stable while you retune the agent.
</Aside>

## Managing routines

Routines are listed per agent, and each has its own page with its schedule, its history, and the runs it produced. You can pause, edit, or cancel one at any time — and agents can list and manage their own routines when you ask them to.

## Limits

- An unattended run refuses gated actions. There is no "approve in advance".
- A routine belongs to one agent and carries one instruction.
- Repeated failures pause the routine rather than retrying indefinitely.
- Routines run on Endue's servers, so they cannot reach anything on your own machine.

## Related

<CardGrid>
  <LinkCard
    title="Approvals"
    href="/docs/work/approvals/"
    description="Why a scheduled run refuses to send."
  />
  <LinkCard
    title="Artifacts"
    href="/docs/capabilities/artifacts/"
    description="Where scheduled output belongs."
  />
  <LinkCard
    title="Notifications and inbox"
    href="/docs/work/inbox/"
    description="How you find out a routine finished, or failed."
  />
</CardGrid>
