BackendBench
Coffee
Cron · DST-aware

Local time to UTC cron

Your schedule is in local time, but GitHub Actions, EventBridge rules and many clusters only speak UTC. Write it the way you think of it and get the UTC expression, daylight saving included.

Why local-time schedules break in UTC

GitHub Actions schedules, AWS EventBridge rules and many hosted schedulers evaluate cron in UTC. People think in local time, so a "9 AM every weekday" job gets written by hand as 30 3 * * 1-5 after some mental arithmetic, and quietly goes wrong the first time the clocks change or the time falls on the other side of midnight.

This converter does the arithmetic exactly. It expands your schedule into the actual times it covers, shifts every one by the zone's offset, and writes the result back as cron, carrying weekday and day-of-month shifts across midnight. For zones with daylight saving it produces one expression per offset and the date ranges each one applies to.

Where a conversion cannot be written as one cron line (a day-of-month that moves into the neighbouring month, for example) the tool says so instead of guessing. After converting, it re-runs both schedules over the next two weeks and confirms they fire at the same moments.

Frequently asked questions

Why does a daylight-saving zone need two UTC schedules?

UTC never changes, but New York is UTC-5 in winter and UTC-4 in summer. A job that must run at 09:00 local time is 14:00 UTC for part of the year and 13:00 UTC for the rest. The tool gives you both expressions and the dates each applies.

Why do I get several lines for a half-hour time zone like India?

A schedule such as every 15 minutes from 9 to 17 shifts by 5 hours 30 minutes, so the hour boundaries no longer line up and one local cron needs several UTC lines to cover exactly the same moments. The tool verifies the result against the original.

Do I even need to convert?

Often not. Kubernetes 1.27+ has spec.timeZone, Spring has zone on @Scheduled, Quartz has inTimeZone, and Azure Functions has WEBSITE_TIME_ZONE. GitHub Actions and EventBridge rules are UTC-only, which is where this tool helps most.

Why can a weekday change?

If the local time is early in the morning in a zone ahead of UTC, the UTC time falls on the previous day. 02:00 on Monday in India is 20:30 on Sunday in UTC, so the day-of-week field shifts too. The converter does that for you.

More tools you might need