Workflows use your system’s native scheduler to run automatically at specified times. This page explains how to configure scheduling, auto-approve policies, and handle missed runs.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/lvndry/jazz/llms.txt
Use this file to discover all available pages before exploring further.
Cron schedule format
Workflows use standard 5-field cron expressions:*(any value)- A specific number (e.g.,
5) - A list (e.g.,
1,15,30) - A range (e.g.,
1-5) - A step value (e.g.,
*/15)
Common schedules
| Expression | Description |
|---|---|
0 * * * * | Every hour at minute 0 |
0 8 * * * | Daily at 8:00 AM |
*/15 * * * * | Every 15 minutes |
0 9 * * 1 | Every Monday at 9:00 AM |
0 0 1 * * | First day of every month at midnight |
0 9 * * 1-5 | Weekdays at 9:00 AM |
30 7 * * 6,0 | Weekends at 7:30 AM |
Examples with context
Email cleanup (hourly)
Morning briefing (weekdays)
Weekly report (Mondays)
Quick check (every 15 minutes)
Always wrap cron expressions in quotes in YAML to prevent parsing issues.
System schedulers
Jazz uses your operating system’s native scheduler:macOS (launchd)
On macOS, Jazz creates a plist file in~/Library/LaunchAgents/:
Run on login (macOS)
When scheduling a workflow on macOS, Jazz asks if you want to run it on login. This helps catch missed runs when your Mac was asleep:RunAtLoad feature to execute the workflow when you log in, in addition to the regular schedule.
Linux (cron)
On Linux, Jazz adds an entry to your user crontab:Schedule metadata
Jazz stores schedule metadata in:- The agent ID to use for scheduled runs
- The timestamp when the workflow was scheduled
- RunAtLoad preference (macOS)
Auto-approve policies
Auto-approve policies control which tools can execute without user confirmation during scheduled runs. This allows workflows to run unattended while maintaining safety.Policy levels
Always prompt for approval. The workflow will pause and wait for user input.Use for: Interactive workflows where you want to review every action.
Auto-approve read-only tools only. The agent can search, read files, and fetch data without approval.Auto-approved tools:
web_search, read_file, list_emails, get_calendarStill requires approval: Writing files, sending emails, executing commandsUse for: Research and monitoring workflowsAuto-approve read-only tools plus low-risk write operations. The agent can archive emails, create calendar events, and label items.Auto-approved tools: All read-only tools plus
archive_email, create_calendar_event, label_emailStill requires approval: Deleting files, sending emails, executing shell commands, git pushUse for: Email management, calendar automationAuto-approve all tools, including high-risk operations. The agent can delete files, send emails, execute commands, and push to git.Auto-approved tools: EverythingUse for: Fully trusted automation with explicit safety guidelines in the prompt
Same as
high-risk. Auto-approve all tools.Tool risk categories
Tools are categorized by their potential impact: Read-only tools:web_searchread_filelist_emailsget_calendargit_diffgit_log
archive_emailcreate_calendar_eventlabel_emailcreate_directory
delete_filesend_emailexecute_commandgit_pushgit_commitwrite_file(with destructive changes)
Choosing the right policy
Start conservative
Begin with
read-only or low-risk for new workflows. Test manually before increasing permissions.Match policy to workflow purpose
- Research/monitoring:
read-only - Email cleanup:
low-risk - Code deployment:
high-risk(with extreme caution)
Add safety guidelines
Even with high permissions, include explicit safety rules in your workflow prompt:
Catch-up behavior
System schedulers (launchd, cron) only run jobs when the machine is awake. If your computer was asleep at the scheduled time, that run is skipped. Jazz provides a catch-up feature to handle missed runs:Enabling catch-up
When
true, Jazz will check for missed runs when you start any Jazz command.Maximum age (in seconds) for catch-up runs. Missed runs older than this won’t be caught up.Common values:
3600- 1 hour21600- 6 hours43200- 12 hours86400- 24 hours
How catch-up works
When you run any Jazz command (e.g.,jazz chat, jazz workflow list), Jazz checks if any workflows:
- Are scheduled
- Have
catchUpOnStartup: true - Missed their last scheduled run
- Are within the
maxCatchUpAgewindow
Manual catch-up
You can also run catch-up manually:Scheduling commands
Schedule a workflow
- Verify the workflow has a
schedulefield - Prompt you to select an agent (if not specified in the workflow)
- On macOS, ask if you want to run on login
- Create the system scheduler entry
- Save schedule metadata
List scheduled workflows
Unschedule a workflow
View run history
Troubleshooting
Workflow not running
Verify the agent exists
Agent not found during scheduled run
The agent must exist when the workflow runs. Update the schedule with a new agent:Workflow asks for approval despite autoApprove
Make sure you’re using--auto-approve when running manually:
autoApprove setting.
Computer was asleep, runs were missed
Enable catch-up to handle missed runs:- Keep your computer awake during scheduled times
- Run Jazz on an always-on device (server, cloud VM, Raspberry Pi)
- Schedule workflows when you know your computer will be on
- Run manually when needed:
jazz workflow run <name>
Next steps
Workflow overview
Learn about workflow basics and built-in workflows
File structure
Understand YAML frontmatter and content format