crontool
Paste a schedule, read it in English, see the next runs.

User Crontab vs System Crontab

A user crontab (edited with crontab -e) runs jobs as that user and has no username field. The system crontab (/etc/crontab and /etc/cron.d) is edited directly, adds a username field to each line, and is meant for system-wide jobs.

User crontab

Edit with crontab -e; it is stored under /var/spool/cron. Every line runs as the editing user, so there is no username field:

0 * * * * /usr/bin/bash /home/user/job.sh

List it with crontab -l, remove with crontab -r.

System crontab

/etc/crontab and files in /etc/cron.d are edited as root with a text editor and include a username after the schedule:

0 * * * * www-data /usr/bin/php /var/www/task.php

Which should you use?

Use a user crontab for personal, per-user jobs — it's simpler and doesn't need root. Use the system crontab for jobs deployed by configuration management, that must run as a specific service account, or that belong to the machine rather than a person.

Common mistake

Copying a system-crontab line (with a username) into crontab -e fails, because cron treats the username as part of the command. Drop the username field for a user crontab.

FAQ

What's the difference between crontab -e and /etc/crontab?

crontab -e edits your personal user crontab (runs as you, no username field). /etc/crontab is the system crontab, edited as root, with a username field on each line.

Does a user crontab have a username field?

No. A user crontab always runs as its owner, so lines are just: schedule + command. Only system crontabs (/etc/crontab, /etc/cron.d) add a username field.

Why does my copied crontab line fail?

You likely copied a system-crontab line that includes a username into crontab -e. Cron reads the username as part of the command — remove it for a user crontab.