> For the complete documentation index, see [llms.txt](https://docs.paradime.io/app-help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.paradime.io/app-help/products/bolt/creating-schedules/schedules-as-code/configuration-reference.md).

# Configuration Reference

This section describes the YAML configuration format for scheduling and managing automated tasks. The configuration supports various execution modes including scheduled runs, trigger-based execution, CI/CD integration and API, plus additional configurations like deferred artifacts (dbt™️ defer), notifications and Self-Healing.

{% hint style="info" %}
💡 **Looking for complete examples?** Jump to the Example Configurations section below.
{% endhint %}

#### Base Configuration

Every scheduler configuration must include these basic fields:

```yaml
name: string               # Name of the schedule
description: string        # Job description
owner_email: string       # Email of the job owner
git_branch: string        # Target Git branch
environment: string       # Only "production" is supported
commands:                 # List of commands to execute
  - string
```

#### Execution Modes

**1. Schedule-Triggered Execution**

Basic scheduled execution using cron expression:

```yaml
schedule: '0 */2 * * *'     # Runs every 2 hours
timezone: UTC               # Timezone
```

<details>

<summary>Supported Timezone List</summary>

| Timezone                         | Timezone                  | Timezone              |
| -------------------------------- | ------------------------- | --------------------- |
| Africa/Accra                     | America/Sao\_Paulo        | Etc/GMT-6             |
| Africa/Addis\_Ababa              | America/Scoresbysund      | Etc/GMT-7             |
| Africa/Algiers                   | America/Shiprock          | Etc/GMT-8             |
| Africa/Asmara                    | America/Sitka             | Etc/GMT-9             |
| Africa/Asmera                    | America/St\_Barthelemy    | Etc/GMT-10            |
| Africa/Bamako                    | America/St\_Johns         | Etc/GMT-11            |
| Africa/Bangui                    | America/St\_Kitts         | Etc/GMT-12            |
| Africa/Banjul                    | America/St\_Lucia         | Etc/GMT-13            |
| Africa/Bissau                    | America/St\_Thomas        | Etc/GMT-14            |
| Africa/Blantyre                  | America/St\_Vincent       | Etc/GMT+0             |
| Africa/Brazzaville               | America/Swift\_Current    | Etc/GMT+1             |
| Africa/Bujumbura                 | America/Tegucigalpa       | Etc/GMT+2             |
| Africa/Cairo                     | America/Thule             | Etc/GMT+3             |
| Africa/Casablanca                | America/Thunder\_Bay      | Etc/GMT+4             |
| Africa/Ceuta                     | America/Tijuana           | Etc/GMT+5             |
| Africa/Conakry                   | America/Toronto           | Etc/GMT+6             |
| Africa/Dakar                     | America/Tortola           | Etc/GMT+7             |
| Africa/Dar\_es\_Salaam           | America/Vancouver         | Etc/GMT+8             |
| Africa/Djibouti                  | America/Virgin            | Etc/GMT+9             |
| Africa/Douala                    | America/Whitehorse        | Etc/GMT+10            |
| Africa/El\_Aaiun                 | America/Winnipeg          | Etc/GMT+11            |
| Africa/Freetown                  | America/Yakutat           | Etc/GMT+12            |
| Africa/Gaborone                  | America/Yellowknife       | Etc/GMT0              |
| Africa/Harare                    | Antarctica/Casey          | Etc/Greenwich         |
| Africa/Johannesburg              | Antarctica/Davis          | Etc/UCT               |
| Africa/Juba                      | Antarctica/DumontDUrville | Etc/Universal         |
| Africa/Kampala                   | Antarctica/Macquarie      | Etc/UTC               |
| Africa/Khartoum                  | Antarctica/Mawson         | Etc/Zulu              |
| Africa/Kigali                    | Antarctica/McMurdo        | Europe/Amsterdam      |
| Africa/Kinshasa                  | Antarctica/Palmer         | Europe/Andorra        |
| Africa/Lagos                     | Antarctica/Rothera        | Europe/Astrakhan      |
| Africa/Libreville                | Antarctica/South\_Pole    | Europe/Athens         |
| Africa/Lome                      | Antarctica/Syowa          | Europe/Belfast        |
| Africa/Luanda                    | Antarctica/Troll          | Europe/Belgrade       |
| Africa/Lubumbashi                | Antarctica/Vostok         | Europe/Berlin         |
| Africa/Lusaka                    | Arctic/Longyearbyen       | Europe/Bratislava     |
| Africa/Malabo                    | Asia/Aden                 | Europe/Brussels       |
| Africa/Maputo                    | Asia/Almaty               | Europe/Bucharest      |
| Africa/Maseru                    | Asia/Amman                | Europe/Budapest       |
| Africa/Mbabane                   | Asia/Anadyr               | Europe/Busingen       |
| Africa/Mogadishu                 | Asia/Aqtau                | Europe/Chisinau       |
| Africa/Monrovia                  | Asia/Aqtobe               | Europe/Copenhagen     |
| Africa/Nairobi                   | Asia/Ashgabat             | Europe/Dublin         |
| Africa/Ndjamena                  | Asia/Ashkhabad            | Europe/Gibraltar      |
| Africa/Niamey                    | Asia/Atyrau               | Europe/Guernsey       |
| Africa/Nouakchott                | Asia/Baghdad              | Europe/Helsinki       |
| Africa/Ouagadougou               | Asia/Bahrain              | Europe/Isle\_of\_Man  |
| Africa/Porto-Novo                | Asia/Baku                 | Europe/Istanbul       |
| Africa/Sao\_Tome                 | Asia/Bangkok              | Europe/Jersey         |
| Africa/Timbuktu                  | Asia/Barnaul              | Europe/Kaliningrad    |
| Africa/Tripoli                   | Asia/Beirut               | Europe/Kiev           |
| Africa/Tunis                     | Asia/Bishkek              | Europe/Kirov          |
| Africa/Windhoek                  | Asia/Brunei               | Europe/Kyiv           |
| America/Adak                     | Asia/Calcutta             | Europe/Lisbon         |
| America/Anchorage                | Asia/Chita                | Europe/Ljubljana      |
| America/Anguilla                 | Asia/Choibalsan           | Europe/London         |
| America/Antigua                  | Asia/Chongqing            | Europe/Luxembourg     |
| America/Araguaina                | Asia/Chungking            | Europe/Madrid         |
| America/Argentina/Buenos\_Aires  | Asia/Colombo              | Europe/Malta          |
| America/Argentina/Catamarca      | Asia/Dacca                | Europe/Mariehamn      |
| America/Argentina/ComodRivadavia | Asia/Damascus             | Europe/Minsk          |
| America/Argentina/Cordoba        | Asia/Dhaka                | Europe/Monaco         |
| America/Argentina/Jujuy          | Asia/Dili                 | Europe/Moscow         |
| America/Argentina/La\_Rioja      | Asia/Dubai                | Europe/Nicosia        |
| America/Argentina/Mendoza        | Asia/Dushanbe             | Europe/Oslo           |
| America/Argentina/Rio\_Gallegos  | Asia/Famagusta            | Europe/Paris          |
| America/Argentina/Salta          | Asia/Gaza                 | Europe/Podgorica      |
| America/Argentina/San\_Juan      | Asia/Harbin               | Europe/Prague         |
| America/Argentina/San\_Luis      | Asia/Hebron               | Europe/Riga           |
| America/Argentina/Tucuman        | Asia/Ho\_Chi\_Minh        | Europe/Rome           |
| America/Argentina/Ushuaia        | Asia/Hong\_Kong           | Europe/Samara         |
| America/Aruba                    | Asia/Hovd                 | Europe/San\_Marino    |
| America/Asuncion                 | Asia/Irkutsk              | Europe/Sarajevo       |
| America/Atikokan                 | Asia/Istanbul             | Europe/Saratov        |
| America/Atka                     | Asia/Jakarta              | Europe/Simferopol     |
| America/Bahia                    | Asia/Jayapura             | Europe/Skopje         |
| America/Bahia\_Banderas          | Asia/Jerusalem            | Europe/Sofia          |
| America/Barbados                 | Asia/Kabul                | Europe/Stockholm      |
| America/Belem                    | Asia/Kamchatka            | Europe/Tallinn        |
| America/Belize                   | Asia/Karachi              | Europe/Tirane         |
| America/Blanc-Sablon             | Asia/Kashgar              | Europe/Tiraspol       |
| America/Boa\_Vista               | Asia/Kathmandu            | Europe/Ulyanovsk      |
| America/Bogota                   | Asia/Katmandu             | Europe/Uzhgorod       |
| America/Boise                    | Asia/Khandyga             | Europe/Vaduz          |
| America/Buenos\_Aires            | Asia/Kolkata              | Europe/Vatican        |
| America/Cambridge\_Bay           | Asia/Krasnoyarsk          | Europe/Vienna         |
| America/Campo\_Grande            | Asia/Kuala\_Lumpur        | Europe/Vilnius        |
| America/Cancun                   | Asia/Kuching              | Europe/Volgograd      |
| America/Caracas                  | Asia/Kuwait               | Europe/Warsaw         |
| America/Catamarca                | Asia/Macao                | Europe/Zagreb         |
| America/Cayenne                  | Asia/Macau                | Europe/Zaporozhye     |
| America/Cayman                   | Asia/Magadan              | Europe/Zurich         |
| America/Chicago                  | Asia/Makassar             | Factory               |
| America/Chihuahua                | Asia/Manila               | GB                    |
| America/Ciudad\_Juarez           | Asia/Muscat               | GB-Eire               |
| America/Coral\_Harbour           | Asia/Nicosia              | GMT                   |
| America/Cordoba                  | Asia/Novokuznetsk         | GMT-0                 |
| America/Costa\_Rica              | Asia/Novosibirsk          | GMT+0                 |
| America/Coyhaique                | Asia/Omsk                 | GMT0                  |
| America/Creston                  | Asia/Oral                 | Greenwich             |
| America/Cuiaba                   | Asia/Phnom\_Penh          | Hongkong              |
| America/Curacao                  | Asia/Pontianak            | HST                   |
| America/Danmarkshavn             | Asia/Pyongyang            | Iceland               |
| America/Dawson                   | Asia/Qatar                | Indian/Antananarivo   |
| America/Dawson\_Creek            | Asia/Qostanay             | Indian/Chagos         |
| America/Denver                   | Asia/Qyzylorda            | Indian/Christmas      |
| America/Detroit                  | Asia/Rangoon              | Indian/Cocos          |
| America/Dominica                 | Asia/Riyadh               | Indian/Comoro         |
| America/Edmonton                 | Asia/Saigon               | Indian/Kerguelen      |
| America/Eirunepe                 | Asia/Sakhalin             | Indian/Mahe           |
| America/El\_Salvador             | Asia/Samarkand            | Indian/Maldives       |
| America/Ensenada                 | Asia/Seoul                | Indian/Mauritius      |
| America/Fort\_Nelson             | Asia/Shanghai             | Indian/Mayotte        |
| America/Fort\_Wayne              | Asia/Singapore            | Indian/Reunion        |
| America/Fortaleza                | Asia/Srednekolymsk        | Iran                  |
| America/Glace\_Bay               | Asia/Taipei               | Israel                |
| America/Godthab                  | Asia/Tashkent             | Jamaica               |
| America/Goose\_Bay               | Asia/Tbilisi              | Japan                 |
| America/Grand\_Turk              | Asia/Tehran               | Kwajalein             |
| America/Grenada                  | Asia/Tel\_Aviv            | Libya                 |
| America/Guadeloupe               | Asia/Thimbu               | MET                   |
| America/Guatemala                | Asia/Thimphu              | Mexico/BajaNorte      |
| America/Guayaquil                | Asia/Tokyo                | Mexico/BajaSur        |
| America/Guyana                   | Asia/Tomsk                | Mexico/General        |
| America/Halifax                  | Asia/Ujung\_Pandang       | MST                   |
| America/Havana                   | Asia/Ulaanbaatar          | MST7MDT               |
| America/Hermosillo               | Asia/Ulan\_Bator          | Navajo                |
| America/Indiana/Indianapolis     | Asia/Urumqi               | NZ                    |
| America/Indiana/Knox             | Asia/Ust-Nera             | NZ-CHAT               |
| America/Indiana/Marengo          | Asia/Vientiane            | Pacific/Apia          |
| America/Indiana/Petersburg       | Asia/Vladivostok          | Pacific/Auckland      |
| America/Indiana/Tell\_City       | Asia/Yakutsk              | Pacific/Bougainville  |
| America/Indiana/Vevay            | Asia/Yangon               | Pacific/Chatham       |
| America/Indiana/Vincennes        | Asia/Yekaterinburg        | Pacific/Chuuk         |
| America/Indiana/Winamac          | Asia/Yerevan              | Pacific/Easter        |
| America/Indianapolis             | Atlantic/Azores           | Pacific/Efate         |
| America/Inuvik                   | Atlantic/Bermuda          | Pacific/Enderbury     |
| America/Iqaluit                  | Atlantic/Canary           | Pacific/Fakaofo       |
| America/Jamaica                  | Atlantic/Cape\_Verde      | Pacific/Fiji          |
| America/Jujuy                    | Atlantic/Faeroe           | Pacific/Funafuti      |
| America/Juneau                   | Atlantic/Faroe            | Pacific/Galapagos     |
| America/Kentucky/Louisville      | Atlantic/Jan\_Mayen       | Pacific/Gambier       |
| America/Kentucky/Monticello      | Atlantic/Madeira          | Pacific/Guadalcanal   |
| America/Knox\_IN                 | Atlantic/Reykjavik        | Pacific/Guam          |
| America/Kralendijk               | Atlantic/South\_Georgia   | Pacific/Honolulu      |
| America/La\_Paz                  | Atlantic/St\_Helena       | Pacific/Johnston      |
| America/Lima                     | Atlantic/Stanley          | Pacific/Kanton        |
| America/Los\_Angeles             | Australia/ACT             | Pacific/Kiritimati    |
| America/Louisville               | Australia/Adelaide        | Pacific/Kosrae        |
| America/Lower\_Princes           | Australia/Brisbane        | Pacific/Kwajalein     |
| America/Maceio                   | Australia/Broken\_Hill    | Pacific/Majuro        |
| America/Managua                  | Australia/Canberra        | Pacific/Marquesas     |
| America/Manaus                   | Australia/Currie          | Pacific/Midway        |
| America/Marigot                  | Australia/Darwin          | Pacific/Nauru         |
| America/Martinique               | Australia/Eucla           | Pacific/Niue          |
| America/Matamoros                | Australia/Hobart          | Pacific/Norfolk       |
| America/Mazatlan                 | Australia/LHI             | Pacific/Noumea        |
| America/Mendoza                  | Australia/Lindeman        | Pacific/Pago\_Pago    |
| America/Menominee                | Australia/Lord\_Howe      | Pacific/Palau         |
| America/Merida                   | Australia/Melbourne       | Pacific/Pitcairn      |
| America/Metlakatla               | Australia/North           | Pacific/Pohnpei       |
| America/Mexico\_City             | Australia/NSW             | Pacific/Ponape        |
| America/Miquelon                 | Australia/Perth           | Pacific/Port\_Moresby |
| America/Moncton                  | Australia/Queensland      | Pacific/Rarotonga     |
| America/Monterrey                | Australia/South           | Pacific/Saipan        |
| America/Montevideo               | Australia/Sydney          | Pacific/Samoa         |
| America/Montreal                 | Australia/Tasmania        | Pacific/Tahiti        |
| America/Montserrat               | Australia/Victoria        | Pacific/Tarawa        |
| America/Nassau                   | Australia/West            | Pacific/Tongatapu     |
| America/New\_York                | Australia/Yancowinna      | Pacific/Truk          |
| America/Nipigon                  | Brazil/Acre               | Pacific/Wake          |
| America/Nome                     | Brazil/DeNoronha          | Pacific/Wallis        |
| America/Noronha                  | Brazil/East               | Pacific/Yap           |
| America/North\_Dakota/Beulah     | Brazil/West               | Poland                |
| America/North\_Dakota/Center     | Canada/Atlantic           | Portugal              |
| America/North\_Dakota/New\_Salem | Canada/Central            | PRC                   |
| America/Nuuk                     | Canada/Eastern            | PST8PDT               |
| America/Ojinaga                  | Canada/Mountain           | ROC                   |
| America/Panama                   | Canada/Newfoundland       | ROK                   |
| America/Pangnirtung              | Canada/Pacific            | Singapore             |
| America/Paramaribo               | Canada/Saskatchewan       | Turkey                |
| America/Phoenix                  | Canada/Yukon              | UCT                   |
| America/Port\_of\_Spain          | CET                       | Universal             |
| America/Port-au-Prince           | Chile/Continental         | US/Alaska             |
| America/Porto\_Acre              | Chile/EasterIsland        | US/Aleutian           |
| America/Porto\_Velho             | CST6CDT                   | US/Arizona            |
| America/Puerto\_Rico             | Cuba                      | US/Central            |
| America/Punta\_Arenas            | EET                       | US/East-Indiana       |
| America/Rainy\_River             | Egypt                     | US/Eastern            |
| America/Rankin\_Inlet            | Eire                      | US/Hawaii             |
| America/Recife                   | EST                       | US/Indiana-Starke     |
| America/Regina                   | EST5EDT                   | US/Michigan           |
| America/Resolute                 | Etc/GMT                   | US/Mountain           |
| America/Rio\_Branco              | Etc/GMT-0                 | US/Pacific            |
| America/Rosario                  | Etc/GMT-1                 | US/Samoa              |
| America/Santa\_Isabel            | Etc/GMT-2                 | UTC                   |
| America/Santarem                 | Etc/GMT-3                 | W-SU                  |
| America/Santiago                 | Etc/GMT-4                 | WET                   |
| America/Santo\_Domingo           | Etc/GMT-5                 | Zulu                  |

</details>

**2. Run Completion Trigger**

Triggers execution based on completion of another job:

```yaml
schedule: 'OFF'
schedule_trigger:
  enabled: true
  schedule_name: string     # Name of the trigger schedule
  workspace_name: string    # Workspace containing the trigger schedule
  trigger_on:               # Events that trigger execution
    - passed
    - failed
```

**3. Merge Trigger**

Triggers execution on merge events:

```yaml
schedule: 'OFF'
trigger_on_merge: true     # Enables merge-triggered execution
```

{% hint style="warning" %}
Requires **GitHub integration**.
{% endhint %}

**4. Turbo CI Configuration**

Configuration for CI pipelines, triggered when a Pull Request is opened:

```yaml
schedule: 'OFF'
turbo_ci:
  enabled: true
  deferred_schedule_name: string  # Name of the schedule whose artifacts the CI run defers to
  successful_run_only: boolean    # Whether to defer only to artifacts from successful runs
```

**5. API Configuration**

Basic configuration when triggering Bolt via API:

```yaml
schedule: 'OFF'
```

{% hint style="info" %}
For more details on Paradime APIs check our **Developers guide**.
{% endhint %}

**6. Suspended State**

Configuration for suspended jobs:

```yaml
suspended: true            # Indicates the job is suspended
```

#### Deferred Artifacts (dbt™ defer)

Any schedule can defer to the artifacts of another schedule's run, enabling state-based selectors like `state:modified+` and `source_status:fresher+`. This is not an execution mode — it works alongside any trigger type (cron, merge trigger, run completion or API).

```yaml
deferred_schedule:
  enabled: true
  deferred_schedule_name: string  # Name of the schedule whose artifacts to defer to
  successful_run_only: boolean    # Whether to defer only to artifacts from successful runs
```

{% hint style="info" %}
💡 `deferred_schedule_name` can reference the schedule itself. A self-referential deferred schedule compares against the artifacts of its own previous run — useful for incremental patterns like building only models with fresher sources.
{% endhint %}

#### **Environment Variable Overrides**

Set or override environment variables for a single schedule using `env_overrides`. The overrides are scoped to that schedule's commands only — they don't affect other schedules or your Bolt-level environment variables.

```yaml
env_overrides:
  - key: string            # Environment variable name
    value: string          # Literal value, or ${BOLT_VAR} to reference a Bolt-level env var
```

Each entry takes a `key` and a `value`. Values can be either a **literal string** or a **reference** to an existing Bolt-level environment variable using `${VAR_NAME}` — useful when you want one schedule to point an existing variable like `DBT_TARGET` at a different value managed in your Bolt environment.

**Example: literal value**

```yaml
env_overrides:
  - key: CUSTOM_VAR
    value: literal_value
```

**Example: reference an existing Bolt-level env var**

```yaml
env_overrides:
  - key: DBT_PROFILES_DIR
    value: ${MY_NEW_VAR}     # Resolves to the current value of MY_NEW_VAR from Bolt env vars
  - key: DBT_TARGET
    value: ${MY_NEW_VAR}
```

**Validation rules**

* `key` must match the pattern `^[a-zA-Z_][a-zA-Z0-9_]*$` (letters, digits and underscores; cannot start with a digit).
* `value` cannot contain whitespace.
* A `${VAR}` reference that points to a Bolt-level variable that doesn't exist is **dropped silently** (a warning is logged) — the schedule still deploys.
* Entries with an invalid `key` or `value` are skipped with a warning — they will not break the deploy.

{% hint style="info" %}
💡 If both a Bolt-level env var and an `env_overrides` entry define the same key, the schedule-level override wins for that schedule's commands.
{% endhint %}

#### Notifications Configuration

Notifications can be configured for various events through multiple channels:

```yaml
notifications:
  emails:                  # Email notifications configuration
    - address: string      # List of recipient email address
      events:              # List of events to notify for each recipient
        - passed           # Schedule completed successfully
        - failed          # Schedule completed successfully with errors
        - sla             # SLA threshold exceeded
        
  microsoft_teams:         # Microsoft Teams notifications
    - channel: string      # List of Teams channel name
      events:              # List of events to notify for each recipient
        - passed          # Schedule completed successfully
        - failed          # Schedule completed successfully with errors
        - sla             # SLA threshold exceeded
        
  slack_channels:
    - channel: string      # List of Slack channel name
      events:              # List of events to notify for each recipient
        - passed          # Schedule completed successfully
        - failed          # Schedule completed successfully with errors
        - sla             # SLA threshold exceeded
        
sla_minutes: number        # SLA threshold in minutes
```

{% hint style="info" %}
For Slack and MS Teams notifications, check our integrations guide:

* **Slack**
* **Microsoft Teams**
  {% endhint %}

#### Self-Healing

When a schedule run fails, Paradime can automatically trigger a DinoAI agent against the failure inside the configured Slack thread. The agent reviews the run, implements a fix, and opens a pull request for your team to review.

```yaml
self_healing:
  enabled: true                       # Turn Self-Healing on for this schedule
  slack_channel: '#agent-demo'        # Slack channel the agent runs in (see rule below)
  agent_name: bolt-pipeline-healer    # Name of a YAML-defined programmable agent
```

| Field           | Type     | Required             | Description                                                                                                         |
| --------------- | -------- | -------------------- | ------------------------------------------------------------------------------------------------------------------- |
| `enabled`       | `bool`   | Yes                  | Set to `true` to turn Self-Healing on for this schedule. Defaults to `false`.                                       |
| `slack_channel` | `string` | When `enabled: true` | The Slack channel the agent threads into. **Must also appear in `notifications.slack_channels`** for this schedule. |
| `agent_name`    | `string` | No                   | Name of a programmable agent defined under `.dinoai/agents/<name>.yml`.                                             |

{% hint style="warning" %}
**Validation:** if `enabled: true` is set with a `slack_channel`, that channel **must also be listed** in this schedule's `notifications.slack_channels`. The deployer rejects the schedule with `self_healing.slack_channel '<channel>' must also appear in notifications.slack_channels` otherwise — the agent reuses the failure-notification thread, so the notification has to exist for the agent to find it.
{% endhint %}

**Example: Self-Healing alongside notifications**

```yaml
schedules:
  - name: daily run
    environment: production
    git_branch: main
    commands:
      - dbt build
    schedule: "0 4 * * *"
    timezone: UTC
    notifications:
      slack_channels:
        - channel: '#agent-demo'
          events:
            - failed
        - channel: '#data-alerts'
          events:
            - failed
    self_healing:
      enabled: true
      slack_channel: '#agent-demo'
      agent_name: bolt-pipeline-healer
```

When this schedule fails, the failure posts to both `#agent-demo` and `#data-alerts`. The agent then runs in-thread in `#agent-demo`, and `#data-alerts` receives a courtesy `🦖 Self-healing started in #agent-demo` pointer.

#### Trigger integration

You can set up triggers to automate actions when runs complete. Trigger Settings allow you to connect Bolt to external tools and services, enabling automated workflows based on your pipeline execution results.

```yml
integrations:
  incident_io:
    - status_id: 01JZNBWY12QNFFJ2G1E8H2FKDR
      status: Merged
      mode: retrospective
      type_id: 01JZNBWY12JPEG0AWMDK9TWG6V
      type: Default
      severity_id: 01JZNBWY12XG5HTZT11DYJ2TDN
      severity: Minor
      visibility: public
  pagerduty:
    - mode: standard
      from_email: datateam@acme.io
      incident_type_name: incident_default
      incident_type_display_name: Base Incident
      service_id: PO26BTW
      service_name: Data Alerts
      urgency: low
      priority_id: PEI9MBW
      priority_name: P1
      escalation_policy_id: PFEBPFK
      escalation_policy_name: Default
  datadog:
    - severity: SEV_1
      severity_name: Critical
      customer_impacted: true
      state: ACTIVE
      state_name: Active
      commander_user_id: 39363321-5c14-11f0-a281-2e6613966262
      commander_user_name: Kaustav Mitra
      notification_handles:
        - '@kaustav@paradimehq.com'
  new_relic:
    - environment: testing
```

**Example: Complete Configuration**

{% tabs %}
{% tab title="Scheduled Trigger" %}

```yaml
schedules:
  - name: daily run
    description: "Daily build of all dbt models"
    owner_email: john@acme.io 
    environment: production
    git_branch: main  
    commands:
      - dbt run
      - dbt test
    schedule: 0 10 * * *
    timezone: UTC    
    sla_minutes: 60
    notifications:
      emails:                 
        - address: john@acme.io 
          events:
            - failed
            - sla
      slack_channels:
        - channel: data-team    
          events:            
            - passed         
            - failed         
        - channel: pipeline-monitoring    
          events:                    
            - failed         
            - sla  
```

{% endtab %}

{% tab title="Run Completion Trigger" %}

```yaml
schedules:
  - name: "Finance reports update"
    description: "Update all finance models"
    owner_email: john@acme.io 
    environment: production
    git_branch: main  
    commands:
      - dbt run --select tag:finance
    schedule: 'OFF'
    schedule_trigger:
      enabled: true
      schedule_name: "Daily Run"
      workspace_name: data-platform
      trigger_on:
        - passed
        - failed  
    sla_minutes: 60
    notifications:
      emails:                 
        - address: john@acme.io 
          events:
            - failed
            - sla
      slack_channels:
        - channel: data-team    
          events:            
            - passed         
            - failed         
        - channel: pipeline-monitoring    
          events:                    
            - failed         
            - sla  
```

{% endtab %}

{% tab title="Merge Trigger" %}

```yaml
schedules:
  - name: "On Merge run CD"
    description: "Continuos deployment run to deploy changes as soon as Merged to the MAIN branch"
    owner_email: john@acme.io 
    environment: production
    git_branch: main  
    commands:
      - dbt run --select state:modified+
    schedule: 'OFF'
    trigger_on_merge: true 
    deferred_schedule:
      enabled: true
      deferred_schedule_name: "On Merge run CD"  
      successful_run_only: True     
    sla_minutes: 60
    notifications:
      emails:                 
        - address: john@acme.io 
          events:
            - failed
      slack_channels:
        - channel: data-team    
          events:            
            - passed         
            - failed         
        - channel: pipeline-monitoring    
          events:                    
            - failed         
```

{% endtab %}

{% tab title="Deferred Artifacts" %}

```yaml
schedules:
  - name: "High Frequency run"
    description: "Trigger run and build models only when new data landed in sources tables"
    owner_email: john@acme.io 
    environment: production
    git_branch: main  
    commands:
      - dbt source freshness
      - dbt build --select source_status:fresher+ state:modified+ result:error+ result:fail+
    schedule: '0,30 6-23 * * *'
    timezone: UTC
    deferred_schedule:
      enabled: true
      deferred_schedule_name: "High Frequency run"
      successful_run_only: False     
    sla_minutes: 60
    notifications:
      emails:                 
        - address: john@acme.io 
          events:
            - failed
            - sla
      slack_channels:
        - channel: data-team    
          events:            
            - passed         
            - failed         
        - channel: pipeline-monitoring    
          events:                    
            - failed         
            - sla
```

{% endtab %}

{% tab title="Turbo CI Configuration" %}

```yaml
schedules:
  - name: "Turbo CI run"
    description: "Trigger run and build models when a Pull Request is opened in a temporary schema"
    owner_email: john@acme.io 
    environment: production
    git_branch: main  
    commands:
      - dbt build --select state:modified+
    schedule: 'OFF'
    turbo_ci:
      enabled: true
      deferred_schedule_name: "High Frequency run"
      successful_run_only: False     
    sla_minutes: 60
    notifications:
      emails:                 
        - address: john@acme.io 
          events:
            - failed
            - sla
      slack_channels:
        - channel: data-team    
          events:            
            - passed         
            - failed         
        - channel: pipeline-monitoring    
          events:                    
            - failed         
            - sla 
```

{% endtab %}
{% endtabs %}

***

#### Best Practices

**Schedule Format**

* Use standard cron expressions for scheduling
  * ✅ Standard cron to define days 0-6
    * `10 * * * 0-6` : At minute 10 on every day-of-week from Sunday through Saturday.
  * ❌ Non-standard cron to define days 1-7
    * `10 * * * 1-7` : At minute 10 on every day-of-week from Monday through Sunday
* Use `'OFF'` to disable scheduled execution
* Use [**crontab.guru**](https://crontab.guru/#10_*_*_*_0-6) to validate your cron expressions

**SLA Configuration**

* `sla_minutes` should be set based on job complexity

  Consider dependencies when setting SLA
* Recommended minimum: 30 minutes

**Notification Configuration**

* Configure at least one notification channel
* Include critical events (failed, SLA) in notifications
* Use team channels for collaborative workflows
* Make sure to set the Slack / MS Teams Channel or Email for System notifications. Check our guide here for **Notifications Settingss**

***

#### Paradime schedules terminal commands <a href="#paradime-schedules-terminal-commands" id="paradime-schedules-terminal-commands"></a>

Before running any of the following commands, navigate to your dbt™️ project directory where `paradime_schedules.yml` is located.

<table data-full-width="false"><thead><tr><th width="406">CLI command</th><th width="457">Description</th></tr></thead><tbody><tr><td><pre><code>paradime schedule verify
</code></pre></td><td><strong>Validate File Format -</strong> This command checks the <code>paradime_schedules.yml</code> for formatting errors and outputs the result.</td></tr><tr><td><pre><code>paradime schedule run
</code></pre></td><td><strong>Run Schedule Locally</strong> - To run all defined schedules based on your local context: (ie. based on your development environment and your current branch).</td></tr><tr><td><pre><code>paradime schedule run &#x3C;schedule_name>
</code></pre></td><td><strong>Run Selected Schedule Locally -</strong> To run the named schedule based on your local context: (ie. based on your development environment and your current branch).</td></tr><tr><td><pre><code>paradime schedule run --dry-run
</code></pre></td><td><strong>Dry run</strong> - To simulate all schedule executions without running dbt™️ models.</td></tr><tr><td><pre><code>paradime schedule run --dry-run &#x3C;schedule_name>
</code></pre></td><td><strong>Dry run</strong> - To simulate the named schedule executions without running dbt™️ models.</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.paradime.io/app-help/products/bolt/creating-schedules/schedules-as-code/configuration-reference.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
