# Schedules as Code

### What are Paradime YAML-Based Schedules?

Paradime YAML schedules are configuration-as-code definitions, allowing you to define, version, and manage your data pipeline schedules directly within your dbt project repository. These schedules are configured in a single file named `paradime_schedules.yml` located in the root directory of your dbt project (alongside `dbt_project.yml`).

{% hint style="warning" %}
**Prerequisites**

* In order to run yaml-based schedules, connect your data warehouse to the [Scheduler Environment](/app-help/documentation/settings/connections/scheduler-environment.md).
  {% endhint %}

#### File Location and Structure

```yaml
your-dbt-project/
├── dbt_project.yml
├── paradime_schedules.yml    # All schedules must be defined here
├── models/
├── tests/
└── ...
```

### Why Use YAML-Based Schedules?

1. **Version Control**
   * Schedule configurations are tracked alongside your dbt models
   * Review schedule modifications through Pull Requests
   * Enforce team review processes for schedule changes
2. **Infrastructure as Code**
   * Schedules are treated as code, not just UI configurations
   * Easy replication across environments
   * Enables automated deployment pipelines
3. **Team Collaboration**
   * Simplified schedule review process
   * Standard formatting and validation
   * Documentation lives with the code

### How YAML-bases schedules are deployed?

Schedules are always read from the `paradime_schedules.yml` file on your default branch (usually `main` or `master`).

* **Automatic Refresh**: Paradime checks for changes every 10 minutes.
* **Manual Refresh**: For immediate updates, navigate to the Bolt interface and click **Parse Schedules**.

{% hint style="info" %}
💡 **Note**: To update your schedules, make sure to merge your changes to the default branch first.
{% endhint %}

***

## 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, deferred scheduling, CI/CD integration and API.

{% hint style="info" %}
💡 **Looking for complete examples?** Jump to the [Example Configurations](#example-complete-configuration) 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**](/app-help/documentation/integrations/ci-cd/github.md).
{% endhint %}

#### 4. Deferred Scheduling

Allows schedules to used dbt defer to artifacts comparison:

```yaml
schedule: 'OFF'
deferred_schedule:
  enabled: true
  deferred_schedule_name: string  # Name of the deferred schedule
  successful_run_only: boolean    
```

#### 5. Turbo CI Configuration

Configuration for CI pipelines:

```yaml
schedule: 'OFF'
turbo_ci:
  enabled: true
  deferred_schedule_name: string  # Name of the schedule for CI
  successful_run_only: boolean    # Whether to run only after successful executions
```

#### 6. 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**](/app-help/developers-old.md).
{% endhint %}

#### 7. Suspended State

Configuration for suspended jobs:

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

### 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**](/app-help/documentation/integrations/notifications/slack.md)
* [**Microsoft Teams**](/app-help/documentation/integrations/notifications/microsoft-teams.md)
  {% endhint %}

### Trigger integration

You can set up triggers to automate actions when runs complete. [Trigger Settings](/app-help/documentation/bolt/creating-schedules/trigger-integrations.md) 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 Schedules" %}

```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'
    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 %}
{% 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 Settings**](/app-help/documentation/settings/notifications.md#bolt-system-alerts-notifications)**s**

***

## 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: 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:

```
GET https://docs.paradime.io/app-help/documentation/bolt/creating-schedules/schedules-as-code.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
