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

# Recurring Schedule

Run your workflow on a repeating schedule — every few minutes, daily, weekly, monthly, and more.

Trigger Schedules

Run your workflow on a repeating schedule — every few minutes, daily, weekly, monthly, and more.

## At a Glance

| Field | Value |
| --- | --- |
| Trigger ID | `cronjob` |
| Category | Schedules |
| Tags | `cronjob`, `rrule`, `recurring`, `time-based`, `interval`, `scheduled` |

## Trigger Configuration

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `rrule` | `string` | Yes | How often this workflow runs \(e.g. every 5 minutes, daily at 9 AM, weekly on Mondays\). Written as an RFC 5545 recurrence: a DTSTART line giving the first run in UTC, then an RRULE line giving the repeat, separated by a newline. The start is required — a recurrence without one has no defined first run. |

## Trigger Result

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `triggeredAt` | `string` | Yes | Timestamp when this scheduled run fired \(UTC, RFC3339 format\) |

## Workflow Root Example

```json
{
  "nodes": {
    "root": {
      "type": "cronjob",
      "payload": {
        "rrule": "DTSTART:20260101T000000Z\nRRULE:FREQ=MINUTELY;INTERVAL=5"
      },
      "children": [
        "log_event"
      ]
    },
    "log_event": {
      "type": "log",
      "payload": {
        "message": "Triggered at {{$trigger.triggeredAt}}"
      },
      "children": []
    }
  }
}
```

**Reference trigger output**

Downstream nodes can use `{{$trigger.triggeredAt}}` and any result fields listed above. Event triggers usually expose the raw source payload under a field such as `event`, `body`, `trade`, or `raw`.