> ## Documentation Index
> Fetch the complete documentation index at: https://docs.overcut.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Scheduled Workflows

> Run Overcut workflows automatically on a recurring schedule using cron-based triggers. Learn how to define schedules, choose execution modes, and monitor recurring runs.

> Automate recurring tasks (nightly code scans, weekly backlog grooming, or monthly dependency updates) by triggering workflows on a fixed schedule instead of waiting for an external event.

Scheduled Workflows let you configure cron-based triggers that launch a workflow at precise times. Rather than reacting to a webhook from GitHub or Jira, the workflow is kicked off by Overcut’s internal scheduler according to a cron expression you define.

## What Are Scheduled Workflows?

A *Scheduled Workflow* is any Overcut Workflow whose trigger type is **Scheduled**. These workflows run automatically at the times you specify. Some examples are:

<CardGroup cols={2}>
  <Card title="Daily Planning" icon="magnifying-glass-waveform">
    Run a daily planning session to review the backlog, plan the day, and share the plan with the team.
  </Card>

  <Card title="Continuous Improvement" icon="at">
    Scan all repos every day and for security or performance improvements and open new issues.
  </Card>

  <Card title="Tech-debt Cleaner" icon="bug">
    Pick up tech-debt issues from the backlog and create PRs to fix them.
  </Card>

  <Card title="Weekly Backlog Triage" icon="note">
    Let an Agent review stale issues and propose closing or updating them.
  </Card>
</CardGroup>

## Defining a Schedule

1. **Create** a Workflow in the Workflow Builder.
2. Click on the trigger block and change its type to `Scheduled`.
3. Click on the **Schedule** panel to define when the workflow should run.
4. Choose an **Execution Mode** (see below) and **Save**.

<Callout type="warning" title="One scheduled trigger per workflow">
  Each workflow can have only one scheduled trigger. However, you can use a single cron expression to schedule multiple execution times (for example, every day at 1pm and 7pm). If you need completely different schedule patterns, create separate workflows for each schedule.
</Callout>

<img src="https://mintcdn.com/overcut/OA5WSuUPfS8g_FS6/images/workflows/scheduled-editor.png?fit=max&auto=format&n=OA5WSuUPfS8g_FS6&q=85&s=8138ee674749b45812d4c500f490be04" alt="Scheduled trigger editor" width="1920" height="1080" data-path="images/workflows/scheduled-editor.png" />

## Execution Modes

When you choose a **Scheduled** trigger you must also decide **how many times** the workflow should execute during each schedule interval. Overcut offers two modes:

| Mode                 | What Happens at *Run Time*                                                                                                                                                       | Typical Use Cases                                                                                                                |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| **Single** (default) | The workflow runs **exactly once** per schedule, using whatever repository (or none) you have hard-coded in the canvas.                                                          | • House-keeping tasks in a single infra repo<br />• Ticket triage that doesn’t touch code<br />• Nightly job against a mono-repo |
| **Per-Repository**   | Overcut first evaluates the attached [Repository Selector](/docs/repositories/repository-selector). For **each matching repository (up to 100)** it queues a separate execution. | • Dependency or security scans across many repos<br />• Automated issue filing in every project<br />• Bulk codebase migrations  |

<Note>
  Per-Repository mode fans out *N* executions where *N* is the number of repositories returned by the selector. Monitor your usage quotas and choose narrow selectors when starting out.
</Note>

## Time-Zone Awareness

Schedules are evaluated in the workspace timezone (default: UTC). Workspace owners can update this in **Account → Settings**. All human-readable summaries and upcoming run previews reflect the selected zone.

## Monitoring & Troubleshooting

* **Execution History**: Each run appears in the *Executions* tab with start time, status, and logs.
* **Failures & Retries**: Failed runs appear in red with error details. You can retry manually or configure automatic retries.
* **Pausing a Schedule**: Toggle the **Enable Workflow** switch to temporarily suspend future executions.

## Limitations & Best Practices

1. **One scheduled trigger per workflow**: Each workflow can contain **only one** scheduled trigger.
2. **Minimum interval**: The shortest supported interval is **1 minute** (`* * * * *`). Use responsibly to avoid rate limits.
3. **No overlapping runs**: Overcut enforces *resource locking* per workflow execution. If a previous scheduled run is still active for the same resource (lock key), the next run is **skipped**.
4. **Version pinning**: Changes to a scheduled workflow’s definition only apply to *future* runs. Already queued executions keep the version that existed at queue time.
5. **Idempotency**: Ensure your workflow can handle being re-run without unintended side effects.

## Related Links

* [Triggers](/docs/workflows/triggers)
* [Repository Mapping](/docs/repositories/repository-mapping)
* [Workflow Execution Control](/docs/workflows/workflow-execution-control)
* [Building Blocks](/docs/building-blocks)
