Cron every 2 minutes

The cron expression for every 2 minutes is:

*/2 * * * *

Runs every 2 minutes, on even minutes: :00, :02, :04 and so on to :58.

720 times a day
Standard 5-field cron

Next 10 runs

For */2 * * * *, in the timezone you pick. Cron uses the server's timezone.

Times in UTC as of the last site update. They refresh when the page loads in a browser.

#Date and timeWhen
1Oct 29, 2026, 22:12Thursday
2Oct 29, 2026, 22:14Thursday
3Oct 29, 2026, 22:16Thursday
4Oct 29, 2026, 22:18Thursday
5Oct 29, 2026, 22:20Thursday
6Oct 29, 2026, 22:22Thursday
7Oct 29, 2026, 22:24Thursday
8Oct 29, 2026, 22:26Thursday
9Oct 29, 2026, 22:28Thursday
10Oct 29, 2026, 22:30Thursday

How to read */2 * * * *

*/2 in the minute field is a step: start at 0 and take every second minute. The other four * fields mean every hour, every day of the month, every month and every day of the week.

FieldValueMeaningAllowed
Minute*/2Every 2 minutes, from minute 00-59
Hour*Every hour0-23
Day of month*Every day of the month1-31
Month*Every month1-12 or jan-dec
Weekday*Every day of week0-7 or sun-sat

Watch out for

  • Steps count from the start of the hour, not from when you saved the crontab. A job added at 10:03 first runs at 10:04.
  • To run on odd minutes instead, use 1-59/2 * * * *.
  • GitHub Actions does not run schedules more often than every 5 minutes.

Often used for: Near-real-time syncs and pollers that can wait a minute longer than every-minute jobs.

Use it in

crontab

*/2 * * * * /path/to/your-script.sh

Edit with crontab -e. Runs in the server's timezone.

Kubernetes CronJob

apiVersion: batch/v1
kind: CronJob
metadata:
  name: my-job
spec:
  schedule: "*/2 * * * *"
  timeZone: "Etc/UTC"
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: my-job
              image: busybox:1.36
              command: ["sh", "-c", "date"]

Without timeZone, the schedule follows the timezone of the kube-controller-manager.

GitHub Actions

on:
  schedule:
    - cron: '*/2 * * * *'
      timezone: "Etc/UTC"
jobs:
  run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: ./your-script.sh

Without timezone, GitHub runs schedules in UTC. It runs them at most every 5 minutes, and a run can start late when GitHub is busy.

All cron schedules

Cron does not tell you when a job stops

Know when a job on this schedule does not run.

Your job pings Drumbeats when it finishes. If a ping does not arrive on schedule, you get an alert. No SDK, free for up to 50 monitors.

Free for up to 50 monitors · Setup in 60 seconds · No credit card required