# Plans, schedules and triggers

The week plan you approve at Launch, how the agent re-plans, the schedules that wake it, and triggers you set up yourself.

Canonical page: https://app.auto-lab.ai/docs/goals/schedules

Nothing in Auto Lab runs all the time. The goal's agent wakes when someone writes to it, when one of its
schedules fires, or when something it waits for arrives. This page covers the plan that drives the week, the
schedules the agent keeps, and the triggers you can set up yourself.

## The week plan

At the end of setup the agent drafts the first week, and the **First week** panel shows it:

| Part | What it is |
|---|---|
| Tasks | The work for the week. Each task is owned by **Agent** or **You**. |
| **Check-ins** | When the agent's routine runs, for example **Weekdays 9:00**. |
| **Tracking** | How progress is measured: the number in your goal, or **Tasks done**. |

**Launch** approves the plan. It puts the tasks on the Overview's board, installs the routine and the plan's
check-ups in **Brain › Schedules**, and runs the first check-in right away. Check-ins report to the place you
picked under **Reaches you** during setup. Microsoft Teams is the exception: it gets escalations only, and routine
output stays in Chat. Tasks you own show in **Needs you** as **Your task**. See
[Set up and launch a goal](/docs/goals/setup).

At each check-in the agent:

1. reads the goal, its progress and the open tasks, and takes the next planned task that is ready
2. asks you for exactly what it needs when the task is yours or needs something only you can give, such as a
   login, a connection or a choice, and meanwhile does the work that does not depend on it
3. moves the task on the board as it goes and records progress
4. ends with what it did and the next step, or, when it is blocked, what it will do if you do not answer

### Change the plan yourself

Select the pencil on the Overview to open **Edit goal**, then say what to change or edit the brief. A revision
shows as a list of **New**, **Changed** and **Dropped** tasks with **Update plan** and **Keep current plan**.
Nothing changes until you select **Update plan**. You can also ask for a change in Chat; a revision you ask for waits
for your approval, at every autonomy level.

If you change the goal itself after a plan was approved, the Overview notes that the plan is older than the goal
and offers **Replan**.

## Re-planning

The agent proposes the next plan on its own when:

- the week ends
- no planned task is left
- progress falls behind pace (the Overview shows **Behind**)
- the same task fails twice

Whether its revision applies at once depends on the goal's Delegation dial
([Approvals and autonomy](/docs/goals/approvals)):

| Revision | **Ask first** | **Within policy** or **Act freely** |
|---|---|---|
| Changes only tasks and check-ups | Waits for you | Applies at once. Chat shows **Plan updated** with the task count. |
| Changes the goal, the check-in cadence, or adds a task for you | Waits for you | Waits for you |

A revision that waits shows as a **Plan** card in **Needs you** and as a card in Chat. Open it and select
**Approve plan**, or request changes. A change you asked for in Chat always waits for you. A revision that applied
on its own was approved by Auto Lab under your rules, never by the agent, and its change request stays in the
history. To reverse it, tell the agent in Chat what you want back.

## Schedules

**Brain › Schedules** lists everything that wakes the agent on a clock: "Reminders, check-ups and routines the
agent keeps for itself, with their next fires and last results."

| Kind | What it does |
|---|---|
| **Reminder** | Messages you once, at a set time. |
| **Check-up** | A one-time job the agent set for itself, such as checking on Thursday whether a vendor replied. The plan's check-ups are this kind. |
| **Routine** | Work that repeats. The plan's check-ins are the goal's routine. |
| **Heartbeat** | Every 30 minutes, goes through a checklist and speaks only when something needs attention. It is paused by default. |
| **Event wait** | A deadline for something the agent is waiting for, such as a reply to an email. If it arrives first, Chat shows **Reply arrived**. If not, the agent decides at the deadline whether to follow up. |

To add one, ask in Chat: "remind me Friday at 4 pm to send the invoice", or "every Monday at 9, send me the
pipeline summary". The agent replies with the exact time it set. It understands times such as "in 45 minutes",
"tomorrow at 9", "every weekday" and "every 90 minutes", in the goal's time zone.

Each row shows the kind, its status (**Active** or **Paused**), the next fire, the last result, and where it
reports: **here**, meaning where it was set, or a recipient the agent named, such as a Slack channel, an iMessage
number or an email address. A red row means the last delivery failed or a fire is overdue.

- **Run now** fires a schedule immediately. It is not offered for an event wait.
- **Cancel** stops it for good.

Auto Lab also keeps a few schedules of its own on every launched goal, such as memory upkeep, the learning
review and an **Evening recap** at 21:00 in your time zone: what got done today, what is still open with you and
what slipped. The recap skips days with no activity. You cannot cancel these rows.

Schedules fire within about a minute of their time. If a fire is missed, for example during an outage, it is
skipped unless the agent set it to run once late, and Chat notes the missed slot.

## Pause scheduled work

**Brain › Triggers** has its own **Pause all triggers** switch, described below. The routine, check-ups and
reminders in **Brain › Schedules** have no pause switch yet: cancel the ones you want to stop, or ask the agent in
Chat to change its schedule. See [Pause a goal](/docs/goals#pause-a-goal).

## Triggers

A trigger is work you set up yourself in **Brain › Triggers**: an instruction that runs on a schedule, or when
another app sends a request. Select **New trigger**, then **Create in chat** to have an agent draft it as a
change request, or **Set up manually**.

| Kind | Starts | On a goal that runs in Chat |
|---|---|---|
| **Scheduled** | On a repeating schedule, or once at a set time | Each run starts a session with your instruction as its first message. The work shows under **All sessions**, not in Chat. |
| **Webhook** | When another app sends a request to the trigger's private address | Each request goes to Chat with your instruction and a summary of what arrived. The agent answers there with limited tools: it reads and reports, and takes no action from the request alone. If it was waiting for that event, it wakes with its usual tools. |

For recurring work that should talk to you in Chat, ask the agent for a routine instead of a scheduled trigger.

A repeating scheduled trigger can start up to 30 minutes after the time you set, so that goals with the same
schedule do not all start at once. A frequent schedule shifts less: at most a quarter of its interval. A
trigger set to run once at a set time is not shifted.

Monitors, a third kind that watches a command's output, are set up in the goal manifest and run only where they
are switched on. See [Goal manifest](/docs/developers/manifest).

### Set up a webhook trigger

### Choose Webhook
In **Brain › Triggers**, select **New trigger**, then **Set up manually**, then **Webhook**.

### Say what it does
Give it a **Name** and an **Instruction**: what the agent should do each time a request arrives. Leave **Agent**
and **Model** as they are unless you need another.

### Add a signing key
Paste a key under **Signing key** or select **Generate**. Auto Lab saves it as one of the goal's secrets. Under
**Advanced** you can add conditions under **Only run when**, so that requests you do not care about are recorded
but start nothing, and choose the end of the address under **Custom ID**. Turn off **Start it right away** to
create it paused.

### Give the address to the other app
Open the new trigger, select **Copy address** and paste it into the other app. That app must sign each request
with the same key. **Sample request** shows a signed example; the signature has to cover the request body
exactly as it is sent.

To start a trigger by hand, open it and select **Run now**. To stop every trigger at once, select the gear next
to **New trigger** and turn on **Pause all triggers**; only people who manage the goal see the gear. Paused
triggers ignore incoming requests, and you can still start one by hand.

### Daily digest

**Daily digest** sends one summary a day of the goal's shared activity to up to four destinations: linked
channels or your verified email. Turn on **Enable daily digest**, set the **Delivery time (UTC)**, choose the
destinations and select **Save digest**. Quiet days send nothing, and private sessions and conversation text are
left out. **Send today's digest now** sends it at once. Pausing the goal's triggers pauses digests too.

### Escalate what needs you

**Escalate what needs you** sends a question, approval, change request or plan that is still waiting to up to
four channels or your email, after a delay you set (**Wait before escalating**, 10 minutes by default). Anything
answered in the app within the delay is never sent, and nothing goes out during **Quiet hours (UTC)**. Launch
turns escalation on for the channel you picked in setup, when that channel is linked. **Recent escalations**
shows what went out and why anything was not sent.
