DeskKit

Cron library

Cron expression for every 30 minutes

*/30 * * * *

At minute 0 and 30 past every hour every day.

Runs 100% in your browser. Nothing you paste is uploaded, stored, or sent to a server.

Or build one

Meaning

Next 10 run times

    How to use

    1. Read the expression and the English meaning above. Confirm they match the job you have in mind.
    2. Use the time zone dropdown to preview the next 10 fire times in UTC or a US/EU city.
    3. Copy the expression into crontab, GitHub Actions (`on.schedule.cron`), or your job runner.
    4. If you need a nearby interval, browse the related schedules at the bottom of this page.

    Twice an hour is often enough for a reconciliation job: inventory vs orders, mailbox vs ticket system, or object storage vs the CDN.

    */30 expands to minutes 0 and 30. 30 * * * * is different — that one fires only once an hour, at :30.

    When this schedule is a good fit

    Typical uses: Reconciling payment captures; Refreshing OAuth tokens that live for an hour; A low-priority search index update.

    Cron fields are zone-naive. The daemon’s TZ — or the TZ= line above the job — decides what “midnight” or “9am” means. Preview both UTC and the office zone before you ship.

    FAQ

    Does this run at midnight?

    Yes, at 00:00 and 00:30, and then every half hour after that.

    How do I run only at :30?

    Write 30 * * * *, without a step. That is once per hour.

    Does this page upload my crontab?

    No. The explainer and the next-run list run in your browser. The expression on this page is a public example.

    DeskKit is a static site. Interactive tools require JavaScript.