DevToolPal
EN

Cron expression

Every 30 seconds

Cron cannot schedule below one minute, so the usual trick is two crontab lines: one runs at the top of each minute and the other sleeps 30 seconds first.

* * * * * 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).

  1. Thu, Jan 1, 2026, 00:01:00
  2. Thu, Jan 1, 2026, 00:01:30
  3. Thu, Jan 1, 2026, 00:02:00
  4. Thu, Jan 1, 2026, 00:02:30
  5. Thu, Jan 1, 2026, 00:03:00
  6. Thu, Jan 1, 2026, 00:03:30

Ready-to-use versions

crontab
* * * * * /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.

Quartz
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.

Spring
@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.