Skip to main content
Instead of building every Bolt schedule in the UI, you can define schedules as YAML in your dbt™ project, version them in Git, and split them across a modular .bolt/ folder. This guide walks you through writing a schedule, organizing multiple schedules by team, and deploying them.
PrerequisitesEstimated time: 15 minutes.

Steps

1

Write a minimal schedule in YAML

Every schedule needs a base configuration: a name, a slug, an owner_email, a target git_branch, the environment (only production is supported), and a list of commands. Add schedule and timezone for cron-based execution.
Leave slug blank on new schedules and let paradime schedule verify generate it, or set your own unique value. Use schedule: 'OFF' for trigger-based or API-triggered schedules.
See the Configuration Reference for every field, including triggers, notifications, deferred artifacts, and self-healing.
2

Organize schedules in a modular .bolt/ folder

Place a .bolt/ folder at the root of your dbt™ project, next to dbt_project.yml. Paradime auto-discovers every .yaml and .yml file inside (at any depth) and merges their schedules: lists into one deployment, so each team can own its own file.
Each file uses the same configuration format as a flat schedules file.
There is no entry-point file and no imports to maintain. A schedule’s name must be unique across every file in .bolt/ (and any legacy paradime_schedules.yml), which can coexist and merge with the folder.
See The .bolt/ Folder for detection rules and multi-team layouts.
3

Validate before you deploy

From your dbt™ project directory, validate the schedule files with the CLI. paradime schedule verify checks formatting and generates any missing slugs, and paradime schedule run --dry-run simulates execution without running dbt™ models.
Validation errors are prefixed with the originating file path (for example, .bolt/transforms/marketing.yaml: schedule 'marketing daily' has an invalid cron expression), so fix the file named in the message.
4

Deploy the schedule

Commit and merge your YAML to the target branch. Paradime reads the schedule definitions and deploys them. You can also build a schedule in the UI and deploy it directly, open a pull request, or download the YAML to commit yourself.See Deploy Schedules for the deploy button, pull-request flow, and downloading YAML.
Your schedules appear in Bolt with the names and triggers from your YAML, and each one runs on its configured cron or trigger. If a schedule is missing, re-run paradime schedule verify and check for a validation error naming the file, most commonly a duplicate name or an invalid cron expression.

Next steps

Understand schedule types and triggers

Choose between cron, merge, run-completion, and API triggers for your YAML schedules.

Create Bolt schedules

Build a schedule in the UI, then export it to code.

Configuration Reference

Every YAML field: triggers, notifications, deferred artifacts, and self-healing.

The .bolt/ folder

Split schedules across files and merge them into one deployment.