Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Repair Windows errors before they cause bigger problems3Scan for outdated or missing drivers - takes under a minuteUse GitHub Actions schedule when a routine job belongs in a repository workflow and occasional start delays are acceptable. Choose an external scheduler when you need a schedule lifecycle separate from the repository, a direct service target, or explicit delivery retries and dead-letter handling. Neither option guarantees an exact execution time.
Can GitHub Actions run a cron job?
Yes. GitHub Actions supports scheduled workflows using POSIX cron syntax. A schedule defaults to UTC, can use an IANA timezone, and runs the workflow against the latest commit on the repository’s default branch. GitHub documents a minimum interval of five minutes; a scheduled workflow cannot run more frequently than once every five minutes. See GitHub’s workflow syntax documentation.
For example, this schedule requests a run at 20 minutes past every hour:
on:
schedule:
- cron: '20 * * * *'
The expression determines when GitHub queues a scheduled run, not a guaranteed start time. Scheduled runs can be delayed under high load, particularly at the start of an hour; sufficiently high load can also cause queued jobs to be dropped. GitHub advises choosing a different minute within the hour to reduce the chance of delay. That is risk reduction, not a timing service-level guarantee. Details are in GitHub’s workflow troubleshooting guidance.
#1 Best Overall
Timezone and daylight-saving behavior
GitHub schedules use UTC unless you specify a timezone. When a configured timezone observes daylight saving time, a cron time that falls in the skipped spring-forward hour advances to the next valid time. GitHub’s example moves a requested 2:30 a.m. run to 3:00 a.m. Confirm the platform’s timezone and daylight-saving rules before relying on a local wall-clock schedule; cron syntax and calendar behavior are not interchangeable across products.
Why is my scheduled GitHub Action late or not running?
- It starts late: GitHub documents delays during high workflow load and identifies the top of the hour as a busy period. Moving the cron minute away from :00 can reduce the chance of delay, but does not guarantee punctual execution.
- The workflow never triggers: The workflow file must exist on the default branch. Scheduled workflows run on that branch, using its latest commit.
- A public repository’s schedule stopped: GitHub automatically disables scheduled workflows in public repositories after 60 days without repository activity. Check whether the schedule has been disabled and whether repository activity has resumed.
GitHub’s event documentation covers the default-branch requirement and inactivity behavior: Events that trigger workflows.
GitHub Actions cron vs. EventBridge Scheduler
“External scheduler” covers many products, so there is no single behavior or guarantee that applies to all of them. Amazon EventBridge Scheduler is a useful concrete example for AWS workloads, not proof that every external option is more reliable or cheaper than GitHub Actions.
| Decision point | GitHub Actions schedule |
Amazon EventBridge Scheduler |
|---|---|---|
| What starts | A workflow against the latest commit on the default branch. | A configured service API target; useful when the scheduled operation need not begin as repository CI. |
| Schedule types | POSIX cron schedule; minimum interval is five minutes. | Recurring rate-based schedules, recurring cron-based schedules, and one-time schedules. |
| Timezone | UTC by default; an IANA timezone can be specified. GitHub documents how a skipped spring-forward time is handled. | Timezone evaluation is supported for cron and one-time schedules. Consult AWS’s schedule documentation for the selected expression and timezone behavior. |
| Timing behavior | Runs can be delayed during high load, and queued jobs can be dropped at sufficiently high load. GitHub does not promise exact start time. | With flexible time windows off, AWS describes invocation within a 60-second interval. A configured flexible window deliberately spreads invocation within that window. This is not a sub-minute exact-time guarantee. |
| Failure delivery controls | The cited schedule guidance warns about delays and dropped queued jobs; it does not establish equivalent target-delivery retry and dead-letter controls. | Supports retries and dead-letter queues for target-delivery failures. Delivery is at least once, so a target may receive duplicates. |
| Operational ownership | Schedule lives in workflow configuration and runs as repository automation. | Schedule and target configuration live in AWS infrastructure and permissions. |
Sources: GitHub workflow syntax, GitHub troubleshooting, AWS schedule types, and AWS EventBridge Scheduler overview.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
When should you use GitHub Actions cron?
Use it when the task is naturally a repository workflow: for example, running maintenance or checks from the default branch on a recurring cadence. It keeps the trigger alongside the workflow and avoids creating a separate scheduler-to-target integration.
- The job should execute as GitHub Actions workflow steps.
- Its code and configuration belong in the repository and should follow the default branch’s current commit.
- A delay during platform load is tolerable, and the job does not depend on an exact start time.
- A five-minute minimum interval and GitHub’s timezone/DST behavior meet the requirement.
When should you use an external scheduler?
Use one when a specific operational requirement justifies separating the calendar from repository CI. With EventBridge Scheduler, that can mean invoking an AWS service API directly, creating one-time schedules, or configuring retry and dead-letter handling for delivery to a target.
- The scheduled action is an AWS service operation that does not need to start as a workflow.
- You need a one-time invocation or want timezone-based recurring schedules evaluated by the scheduler.
- You need scheduler-managed retries and a dead-letter queue for failed target delivery.
- You want a flexible delivery window to spread work rather than concentrate it at one instant.
These controls concern delivery to the configured target; they do not prove that the target’s eventual task completed successfully. AWS describes EventBridge Scheduler delivery as at least once, so design downstream operations to tolerate duplicate delivery where applicable.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Can I schedule a GitHub Action in my timezone?
Yes. GitHub supports specifying an IANA timezone for a scheduled workflow; UTC is the default. Account for the documented spring-forward behavior if the chosen local time can fall in the skipped hour. EventBridge Scheduler also supports timezone evaluation for cron and one-time schedules. Verify syntax and daylight-saving behavior for the chosen platform rather than copying a cron expression and assuming identical semantics.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Can GitHub Actions safely access AWS from a scheduled workflow?
Yes. A workflow can use GitHub’s OpenID Connect (OIDC) integration to request a token and exchange it for temporary AWS access, rather than storing long-lived AWS credentials as GitHub secrets. The workflow needs id-token: write permission to request the token; that permission alone does not grant permission to modify AWS resources. AWS’s trust policy should include conditions restricting which repository or workflow can assume the role. See GitHub’s guide to configuring OIDC in AWS.
Quick Recap
How to choose
- Start with the work: If the task should run as repository CI against the default branch’s latest commit, use GitHub Actions unless another requirement rules it out.
- Set the timing tolerance: If a delayed start is unacceptable, do not treat GitHub’s cron trigger as a punctuality guarantee. Compare the particular external scheduler’s documented timing behavior and configure its delivery window accordingly.
- Check the calendar: Confirm interval limits, timezone support, and daylight-saving behavior for the actual schedule, including whether a one-time run or recurring local-time run is needed.
- Define failure handling: Decide whether it is enough to monitor a workflow run or whether the scheduler must retry delivery to a service target and send failed deliveries to a dead-letter queue. Keep delivery success distinct from successful completion of the target’s work.
- Account for permissions and ownership: A cloud scheduler shifts schedule configuration and access management into cloud infrastructure. If GitHub Actions must access AWS, use OIDC with restrictive trust-policy conditions rather than broad, long-lived credentials.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




