Cron Timezone Converter
Convert a cron expression between timezones and see the next run times in both. Handles daylight saving properly, so a schedule set in London does not silently drift by an hour on a UTC server.

30 8 * * 1-5
Servers run on UTC. People think in local time. Paste a cron expression, pick the timezone you meant and the timezone the server uses, and this tool shows you the converted expression plus the next run times in both — including what happens when daylight saving moves.
What this tool does
You write 0 9 * * 1-5 meaning nine in the morning on weekdays. Your server is on UTC, you are in London, and for seven months of the year that job actually fires at ten. Nobody notices until a client asks why the morning report arrives at lunchtime.
This tool takes a cron expression, the timezone you meant it in, and the timezone the scheduler actually runs in, then converts the hour and — where the shift crosses midnight — the day-of-week field too. It also lists the next several fire times in both zones, computed with real IANA timezone data rather than a fixed offset, so you can see exactly where daylight saving breaks the assumption.
A worked example
Take 30 8 * * 1-5, meant as 08:30 Europe/London, running on a UTC scheduler.
In winter London is UTC+0, so the expression is already correct. In summer it is UTC+1, so the same job needs 30 7 * * 1-5 to fire at 08:30 local. The tool shows both, flags that no single fixed cron expression satisfies both halves of the year, and tells you the honest answer: set the scheduler's timezone rather than converting the expression.
Cross midnight and it gets worse. 0 23 * * 5 in New York is 0 4 * * 6 in UTC — the day-of-week field has to move too, which is the conversion people forget.
How to use it
- Paste the cron expression, in standard five-field form.
- Choose the timezone you wrote it for.
- Choose the timezone your scheduler runs in.
- Read the converted expression and check the next run times listed underneath.
What the fields mean
| Position | Field | Range |
|---|---|---|
| 1 | Minute | 0–59 |
| 2 | Hour | 0–23 |
| 3 | Day of month | 1–31 |
| 4 | Month | 1–12 |
| 5 | Day of week | 0–6, Sunday is 0 |
Where people go wrong
Converting the expression instead of setting the timezone. If your scheduler supports a timezone setting — n8n's Schedule Trigger does, so do cron implementations on most managed platforms — use it. A converted expression is correct for exactly one half of the year in any zone that observes daylight saving.
Forgetting the day-of-week shift. An hour conversion that crosses midnight changes the day. 0 1 * * 1 in Sydney is not Monday anywhere west of it.
Assuming a fixed offset. "London is UTC+1" is true from late March to late October and false the rest of the time. Offsets belong to instants, not to zones, which is why this tool uses the browser's own Intl.DateTimeFormat.formatToParts to resolve the offset at each candidate fire time rather than once at the start.
Scheduling inside the DST gap. A job set for 02:30 local simply does not run on the spring-forward day in most zones, because 02:30 does not exist. On the autumn transition it may run twice. Anything financial or billing-related should be moved out of the 01:00–03:00 window entirely.
FAQ
Does it handle daylight saving?
Yes, in the sense that it tells you the truth about it. The next-run list is computed against real timezone rules, so you can see the drift. It cannot invent a single expression that is correct year-round, because none exists — that is a scheduler configuration problem, not an arithmetic one.
Which timezone names does it accept?
IANA zone identifiers such as Europe/London, America/New_York and Asia/Karachi. These are the canonical names maintained in the IANA Time Zone Database, and they are what every serious scheduler expects.
Does it support six-field cron with seconds?
The converter works on the standard five-field form described in the cron reference. If your platform prepends a seconds field, drop it, convert, then put it back — the seconds field is never affected by a timezone shift.
What about @daily and the other shorthands?
Expand them first. @daily is 0 0 * * *, @hourly is 0 * * * *, @weekly is 0 0 * * 0. Shorthands are not timezone-aware in any implementation.
Why do the next run times differ from my server's?
Usually because the server's own timezone is not what you think it is. Check it before assuming the expression is wrong.
Next steps
To build the expression in the first place, use the Cron Expression Generator. If you are scheduling n8n workflows, How to Build an n8n Workflow covers the Schedule Trigger, and n8n Self-Hosted Setup covers setting the instance timezone so you never have to convert by hand again.
Schedules firing at the wrong hour across a client's estate? Book a discovery call.

Want this built against your real numbers?
A 30-minute call to scope the workflow, agent, or automation you actually need.
More developer tools
All tools.env Manager
Validate, compare, and generate templates for your .env files — without exposing secrets
.gitignore Generator
Build a .gitignore for your stack in seconds. Covers dependencies, build output, IDE files and the .env patterns that keep secrets out of a public repository.
API Mock Server
Create a live mock REST endpoint with your own path, method, status code, headers, delay and JSON body — so you can build and test a frontend or automation before the real API is ready.
API Request Tester
Send REST API requests from your browser with custom headers, auth and a JSON body, and inspect the status, headers and response. Includes a guide to reading status codes and diagnosing CORS.
Base64 Encoder/Decoder
Encode or decode any Base64 string instantly — no install, no login
Cron Expression Generator
Build cron expressions visually and get the correct string for crontab, GitHub Actions, EventBridge, Kubernetes, Make or n8n — with a field reference and the common gotchas explained.
Have a workflow that's burning hours every week?
Bring me one real bottleneck. I'll tell you whether it's worth automating, and what it would take.