About this tool
Build on.schedule cron entries in UTC from your local time and preview when the workflow runs for teammates around the world.
This builder converts a local wall-clock time into the UTC cron expression GitHub Actions actually requires for on.schedule triggers, using POSIX 5-field cron syntax. It handles the part people get wrong by hand: when the UTC conversion crosses midnight it shifts the day-of-week field too, so a Monday 02:00 IST job correctly becomes 30 20 * * 0 (Sunday in UTC). A preview table shows the run time for teammates in six timezones.
Open GitHub Actions Cron Schedule Builder on AltFTool — it loads instantly in your browser.
Paste your code or data sample into the workspace.
Pick the format, conversion, or analysis you need.
Copy the polished result straight back into your project.
Day-of-week and day-shift arithmetic is done for you when local time maps to the previous or next UTC day.
Flags 00:00 UTC and on-the-hour schedules, the slots GitHub's own docs warn get delayed or dropped.
Shows the resulting run time in UTC, New York, Los Angeles, Berlin, India and Tokyo.
UTC, always — the schedule event has no timezone setting. To run at a local time you must convert it to UTC yourself, and re-check the entry when daylight saving shifts your offset, because cron cannot follow DST.
Five minutes — */5 * * * * is the most frequent schedule GitHub accepts. Anything shorter is invalid, and even valid schedules are best-effort: runs can be delayed or skipped entirely during periods of high load on GitHub's infrastructure.
Scheduled workflows are queued, not guaranteed, and the start of every hour — especially 00:00 UTC — is when thousands of workflows fire at once. GitHub's documentation recommends choosing an arbitrary minute like :17 or :43 to avoid the rush; delays of many minutes at popular slots are normal.
On public repositories GitHub automatically disables scheduled workflows after 60 days without repository activity, and schedules only run from the default branch. A commit or manual re-enable in the Actions tab restores them; workflows on other branches never fire on schedule.