* * * * * Open in Cron Expression Parser Standard cron has no seconds field. The two-line crontab gives two runs per minute; Quartz and Spring support seconds directly. Kubernetes and GitHub Actions cannot run jobs this often.
Field by field
| Field | Value | Matches |
|---|---|---|
| Minute | * | Every value |
| Hour | * | Every value |
| Day of month | * | Every value |
| Month | * | Every value |
| Day of week | * | Every value |
Next run times
Example: the first 6 runs after January 1, 2026 (UTC).
- Thu, Jan 1, 2026, 00:01:00
- Thu, Jan 1, 2026, 00:01:30
- Thu, Jan 1, 2026, 00:02:00
- Thu, Jan 1, 2026, 00:02:30
- Thu, Jan 1, 2026, 00:03:00
- Thu, Jan 1, 2026, 00:03:30
Ready-to-use versions
* * * * * /path/to/command
* * * * * sleep 30; /path/to/command Add the line with crontab -e. It runs in the server's time zone unless CRON_TZ or TZ is set.
Kubernetes CronJob: This scheduler cannot run this schedule.
GitHub Actions: This scheduler cannot run this schedule.
GitHub Actions always uses UTC, accepts intervals of 5 minutes or more, and may start scheduled runs late under load.
0/30 * * * * ? Quartz puts seconds first and needs ? in either day-of-month or day-of-week. Days are 1–7 from Sunday, so names are safer.
@Scheduled(cron = "*/30 * * * * *") Spring @Scheduled(cron = …) takes six fields: seconds, then the usual five.
FAQ
› Is there a cron expression for every 30 seconds?
Not in standard five-field cron. Use two crontab lines (one with sleep 30), a systemd timer with OnUnitActiveSec=30s, or Quartz 0/30 * * * * ?.
› Which time zone does * * * * * run in?
Cron uses the time zone of the machine or service that runs it. On Linux that is the system time zone unless CRON_TZ or TZ is set; Kubernetes CronJobs accept spec.timeZone; GitHub Actions always uses UTC.
› How can I check this schedule before deploying it?
Open * * * * * in the Cron Expression Parser on this site. It explains each field and lists the upcoming runs in your local time or UTC, right in your browser.