Free tool
Crontab to Dagu converter
Paste a crontab and each entry becomes a Dagu workflow YAML you can give retries, logs, and a web UI.
3 entries converted, 1 warnings
Warnings
- Line 9: @reboot is not a schedule and has no Dagu equivalent. Consider a systemd unit or another run-at-boot mechanism.@reboot /usr/local/bin/start-agent
This tool runs entirely in your browser. Nothing you paste is uploaded.
# Generated from crontab: 30 2 * * * /usr/local/bin/backup.sh --full
schedule: "30 2 * * *"
shell: /bin/bash
env:
- PATH=/usr/local/bin:/usr/bin:/bin
steps:
- id: backup
run: /usr/local/bin/backup.sh --full
# crontab had MAILTO=ops@example.com. Configure SMTP in Dagu,
# then enable failure mail:
# mail_on:
# failure: true
# Generated from crontab: */15 * * * * /usr/local/bin/health-check.sh
schedule: "*/15 * * * *"
shell: /bin/bash
env:
- PATH=/usr/local/bin:/usr/bin:/bin
steps:
- id: health-check
run: /usr/local/bin/health-check.sh
# crontab had MAILTO=ops@example.com. Configure SMTP in Dagu,
# then enable failure mail:
# mail_on:
# failure: true
# Generated from crontab: @daily /usr/local/bin/rotate-logs
schedule: "0 0 * * *"
shell: /bin/bash
env:
- PATH=/usr/local/bin:/usr/bin:/bin
steps:
- id: rotate-logs
run: /usr/local/bin/rotate-logs
# crontab had MAILTO=ops@example.com. Configure SMTP in Dagu,
# then enable failure mail:
# mail_on:
# failure: true
FAQ
What does the converter handle?
Five-field cron entries, aliases like @daily, and environment assignment lines. SHELL becomes the shell setting, environment variables become the env section, and MAILTO becomes a commented hint for enabling failure mail. Environment variables apply only to entries below their declaration, matching crontab semantics.
What can't be converted?
@reboot is run-at-boot rather than a schedule, so it has no Dagu equivalent and is reported as a warning. Percent signs also carry special crontab semantics (command terminator and stdin), so lines containing % get a warning asking you to verify the command.
Is my crontab uploaded?
No. Parsing and conversion happen entirely in your browser with JavaScript. Nothing you paste leaves the page.
Run the YAML you just generated
Dagu is a single binary with no database. Drop the files into your DAG directory and the same schedules get retries, logs, and run history.