Cron schedule · Updated

Cron every minute: the * * * * * expression, variants and limits

The cron expression for every minute, what the five fields mean, how to run every 30 seconds, and which platforms allow a one-minute schedule and which don't.

To run a cron job every minute, use five asterisks:

* * * * *

It fires at the start of every minute, 1,440 times a day. In a crontab:

* * * * * /usr/local/bin/heartbeat.sh >> /var/log/heartbeat.log 2>&1

What each field means

FieldValueMeaning
Minute*every minute (0 to 59)
Hour*every hour (0 to 23)
Day of month*every day (1 to 31)
Month*every month
Day of week*every day of the week

Variants

ScheduleExpression
Every minute between 9:00 and 17:59* 9-17 * * *
Every minute on weekdays, business hours* 9-17 * * 1-5
Every minute, one hour only (2:00 to 2:59)* 2 * * *
Every 2 minutes*/2 * * * *
Quartz (seconds first)0 * * * * ?
Spring @Scheduled (seconds first)0 * * * * *
AWS EventBridgerate(1 minute)

Platform notes

  • Linux crontab: one minute is the finest resolution. Runs happen in the server's local time.
  • GitHub Actions: not possible. The minimum is every 5 minutes; see GitHub Actions cron.
  • Kubernetes CronJob: allowed, but each run creates a Job and a Pod. Set concurrencyPolicy: Forbid and keep successfulJobsHistoryLimit low so finished Jobs don't pile up.
  • Cloudflare Cron Triggers: * * * * * is one of the documented examples. Free plan Workers get 10 ms of CPU per invocation; Paid gets up to 30 seconds for schedules under an hour (as of October 2026).
  • Vercel: Pro and Enterprise allow once per minute. Hobby allows once a day only.
  • Jenkins: accepted, with a warning suggesting H * * * *. See Jenkins cron.

Common mistakes

  • Overlapping runs. If the job can take more than a minute, guard it with flock -n /tmp/job.lock /path/job.sh.
  • Meaning once an hour. * 9 * * * runs 60 times, every minute from 9:00 to 9:59. For once at 9:00, write 0 9 * * *.
  • Filling a disk with logs. 1,440 runs a day with verbose output adds up. Rotate the log or keep output short.
  • Using cron as a queue. If something should happen right after an event, a webhook or queue is better than polling every minute.

Running an AI agent every minute

Rarely worth it: each run costs tokens, and most agent checks don't change minute to minute. Start hourly and tighten only if you need to; the scheduled skills page shows how to run a Claude Code or Codex skill on a schedule.

Questions

Is * * * * * the same as */1 * * * *?

Yes. Both run every minute. * * * * * is the usual way to write it.

Can GitHub Actions run a workflow every minute?

No. The shortest interval GitHub Actions allows for scheduled workflows is every 5 minutes, and runs can be delayed when the service is busy.

How do I run a cron job every 30 seconds?

Standard cron can't go below a minute. Add two lines, one plain and one that sleeps first: * * * * * /path/job.sh and * * * * * sleep 30; /path/job.sh. For anything finer, use a systemd timer or a long-running loop.

Why does Jenkins warn about * * * * *?

Jenkins asks whether you really mean every minute and suggests H * * * *, once an hour at a time hashed from the job name. If you do want every minute, the warning can be ignored.

More cron schedules

All cron schedules

Know when your agents need you

Briefkin puts your Claude Code, Codex and Cursor sessions on one board: working, needs you, done or failed. Telegram pings you when one is waiting on you, and scheduled skills post their reports next to them.

Free during the open beta. No card.