<!--
Sitemap:
- [Installation](/installation)
- [Upgrading](/upgrading): Version-specific steps for upgrading an existing Bento install.
- [Concepts](/concepts)
- [Build your first pipeline](/tutorials/pipeline-args)
- [Target a specific issue or PR from a URL](/tutorials/url-targeting)
- [Keep state across runs](/tutorials/pipeline-state)
- [Fire a pipeline on a schedule or on demand](/tutorials/schedule-and-fire)
- [Configuration](/configuration)
- [Knowledge Base](/knowledge-base/)
- [Method & delivery](/knowledge-base/modes)
- [Config](/knowledge-base/config)
- [MCP](/knowledge-base/mcp)
- [Pipeline configuration reference](/pipelines/config)
- [Filters](/pipelines/filters)
- [Triggers](/triggers/)
- [GitHub Trigger](/triggers/github)
- [Linear Trigger](/triggers/linear)
- [Webhook](/triggers/webhook)
- [Schedule Trigger](/triggers/schedule)
- [Manual Trigger](/triggers/manual)
- [Traces](/pipelines/traces)
- [Slack](/integrations/slack)
- [Public Access](/public-access)
- [Context Engineering](/context-engineering)
- [Best Practices](/best-practices)
- [Troubleshooting](/troubleshooting)
- [Architecture](/architecture/vision)
- [Workspaces](/workspaces)
- [Authentication](/authentication)
- [Identity](/identity)
- [Security](/security)
- [References](/references)
- [Changelog](/changelog): Bento release history.
- [CLI Reference](/cli/)
- [Setup](/cli/setup)
- [Lifecycle](/cli/lifecycle)
- [Sandbox Image](/cli/image)
- [Observability](/cli/observability)
- [Diagnostics](/cli/diagnostics)
- [Triggers](/cli/triggers)
- [Workbench](/cli/workbench)
- [Auth](/cli/auth)
- [Knowledge](/cli/knowledge)
- [Bento](/index)
- [Runtime Wrapper](/architecture/runtime-wrapper)
- [Skill Evolve](/architecture/skill-evolve)
-->

# Schedule Trigger

Schedule triggers use a standard 5-field cron expression (UTC).

```yaml
trigger:
  schedule: "*/5 * * * *"   # every 5 minutes
```

## Cron format

```
┌───────── minute (0–59)
│ ┌─────── hour (0–23)
│ │ ┌───── day of month (1–31)
│ │ │ ┌─── month (1–12)
│ │ │ │ ┌─ day of week (0–6, 0=Sunday)
│ │ │ │ │
* * * * *
```

Common patterns:

| Expression | Schedule |
|---|---|
| `*/5 * * * *` | Every 5 minutes |
| `0 */3 * * *` | Every 3 hours (midnight, 3am, 6am, …) |
| `0 7 * * *` | Daily at 7am |
| `0 0 * * 1` | Every Monday at midnight |

## Repo checkout

The `repo` value must match the `url` of an entry under `repos:` in `daemon.yaml` (the entry's map key is a label only and is never matched).

To clone a repo before the agent starts, set `trigger.repo` and optionally `trigger.branch`:

```yaml
trigger:
  schedule: "0 */3 * * *"
  repo: acme/my-project      # owner/name — must match a repos: entry's url in daemon.yaml
  branch: develop            # defaults to the repo's configured branch
```

## Examples

```yaml
# liveness probe
trigger:
  schedule: "*/5 * * * *"
agent: heartbeat
instructions: Reply with exactly the word "pong" and nothing else.
options:
  stateless: true
```

```yaml
# daily issue solver
trigger:
  schedule: "0 7 * * *"
  repo: acme/my-project
  branch: develop
agent: solver
skill: solve-issue
```

```yaml
# docs drift audit
trigger:
  schedule: "0 */3 * * *"
  repo: acme/my-project
  branch: develop
agent: archivist
skill: docs-drift-audit
guardrails:
  read_only: true
  timeout: 1200
```
