---
name: automations-schedule
description: "Create, change or pause an Introspection automation, so an agent's work happens later or recurs: a check-in, a brief, a follow-up on an issue. Use from any phase when work should run on a schedule or at a set time."
metadata:
  min-cli-version: "0.73.0"
  next: ""
---

# Automations: schedule

An automation fires a saved prompt on a schedule, or once at a set time, so work happens when nobody is there to ask for it. A firing is automations-respond's, and tuning one from its runs is automations-adjust's.

## 1. Know what already exists

Every `introspection` command takes `--query` (JMESPath): read only what you need.

```sh
introspection automations list --query "[].[id, name, enabled]"
```

Change an existing automation rather than adding a second one for the same work.

## 2. Agree what it does

Agree with the person who asked: its name, what each firing should do (the prompt), when it runs, and where it reports. A recurring automation costs a run every time: say how often that is.

## 3. Create it

```sh
# on a schedule
introspection automations create --name <name> --prompt <what to do> --runtime <slug> --cron <expression> --timezone <zone>
# once
introspection automations create --name <name> --prompt <what to do> --runtime <slug> --at <RFC 3339 time>
```

Add `--task <task-id>` to post each firing into an existing conversation, so a follow-up continues that work instead of starting fresh.

## 4. Read it back

```sh
introspection automations get <id>
```

Tell the person when it next runs.

## Guardrails

- **The person decides** an automation's schedule and prompt; you propose them.
- **Never delete an automation,** and never create one to work around a refusal or a missing scope.
- **Report an automation only once it exists:** read it back.

## Done when

- The automation exists as agreed, and the person knows when it next runs.
