New blogMaking an AI Agent You Can Trust With Money

★ Cron cheat sheet

Cron Expression: Every Minute

The fastest schedule standard cron allows: 1,440 runs a day. Good for queue drains and health checks, risky for anything that can take longer than a minute to finish.

  • Runs in your browser
  • No signup

The expression

* * * * *

Every minute.

  1. *Minute
  2. *Hour
  3. *Day of month
  4. *Month
  5. *Day of week

✓ Valid 5-field cron

Quick picks

Typing by hand. Pick a pattern above to build one with inputs instead.

In plain English

Every minute.

Next 10 runs

Paste it into your platform

Time zone: UTC

* * * * * /usr/local/bin/my-job >> /var/log/my-job.log 2>&1
  • OKRuns in the server’s local time zone. cronie (RHEL, Fedora) accepts a CRON_TZ= line above the job; Debian’s cron does not.
  • Heads-upEscape % as \% in the command: an unescaped % ends the command and starts stdin.
  • Heads-upcron runs with a minimal PATH and no login shell. Use absolute paths and redirect output, or failures disappear.
  • Linux crontab docs ↗

Cron jobs failing silently?

I build background job systems with retries, alerting and dashboards, so you hear about failures before your customers do.

Make my jobs reliable
01

What * * * * * means

Field by field:

Field breakdown
FieldValueMatches
Minute*any
Hour*any
Day of month*any
Month*any
Day of week*any
02

Gotchas

  • If one run takes longer than 60 seconds, the next one starts anyway. Use a lock (flock on Linux, concurrencyPolicy: Forbid on Kubernetes) to stop overlaps.
  • GitHub Actions won’t run it: the shortest interval there is 5 minutes. Vercel needs the Pro plan.
03

Does it run everywhere?

Checked against each platform's rules, assuming UTC:

Platform support
PlatformVerdictWhy
Linux crontabWorks, with a catchEscape % as \% in the command: an unescaped % ends the command and starts stdin.
GitHub ActionsNot supportedThis runs every 1 minute. GitHub’s shortest interval is once every 5 minutes.
VercelNot supportedHobby plan: deploy fails, because Hobby cron jobs may run at most once per day. Pro and Enterprise allow once per minute.
AWS EventBridgeWorksSix fields: the year is added at the end, and one of day-of-month / day-of-week must be ?.
KubernetesWorks, with a catchWithout timeZone, the schedule uses the kube-controller-manager’s local zone. TZ= or CRON_TZ= inside schedule is rejected from v1.29.
04

Questions engineers actually ask

Can cron run every 30 seconds?
Not directly; cron’s smallest unit is one minute. A common workaround is two entries, one with the command and one with "sleep 30 && command". A long-running worker or a queue is usually the better tool.
Is running a job every minute bad?
Not if the job is quick and idempotent. It becomes a problem when runs overlap, hammer an API rate limit, or fill logs. Add a lock and make the job safe to run twice.
Why does my job run on days I didn't expect?
Probably the day-of-month / day-of-week OR rule. If both fields are set, cron runs when either matches. Set one of them to * to get the usual AND behaviour.
What time zone does cron use?
Whatever the scheduler uses: the server's zone for Linux cron, UTC for Vercel and EventBridge rules, UTC by default on GitHub Actions (with an optional timezone key) and the controller's zone on Kubernetes unless spec.timeZone is set.
05

Other schedules

06

More from the workbench

Fine print

Tools: on the house.
Engineer: by the hour.

Infra that doesn't page you at 3am costs a little more. I build background job systems with retries, alerting and dashboards.

I'm Himanshu, an AI and full-stack engineer. I build MVPs, AI agents and the growth plumbing around them for early-stage startups.