Merge pull requests when you say.
Schedule the merge. Define when merges are allowed.
GitHub’s auto-merge fires when checks pass. Azure DevOps’ auto-complete does the same. Neither can merge at a time you choose, and neither can be told when merging is off limits. Scheduled-PR does both — and still refuses to merge anything that isn’t healthy when the moment arrives.
Comment on any pull request. One bot comment per PR, edited in place — never a thread of them.
How it works
1 · Say when
A comment, a label, or the dashboard. Times are read in your timezone, so18:00 means your 18:00.
2 · It waits
Push more commits, get more reviews. The schedule follows the pull request rather than pinning it.
3 · It checks, then merges
Still open, no conflicts, checks green, approvals met, outside your blackout windows. If not, it says exactly why.
Merge policy
One file, committed to your repository- CI
- 2 approvals
- No conflicts
Ask for a merge outside that and you are told when it would actually happen, at the moment you ask — not hours later when it quietly does not. Blocked always beats allowed, because the safer reading of a conflict is the one that doesn’t merge.
Built for the awkward cases
Blackout windows
No merges after 15:00 on Friday, or at weekends. Declared once in a .scheduled-pr.yml in your repository.
Never twice
Merges are pinned to a commit and carry an idempotency key. Duplicate delivery cannot merge a pull request twice.
It tells you why
Every retry edits the comment with the provider’s own words, the next attempt time, and when it will stop trying.
Pricing
Yearly is 10 months — two freeFree
5 scheduled pull requests a month.
Developer
PersonalUnlimited scheduled pull requests.
Enterprise
OrganizationsUnlimited scheduled pull requests.
A unit is one pull request scheduled in a calendar month. Rescheduling the same one is free.