Merge Scheduler vs Merge Freeze: blocking merges vs performing them

The two names sound alike and the jobs are opposite. One keeps merges from happening at certain times. The other makes a merge happen at a certain time and then watches what follows. This page describes Merge Freeze as its public listings do; check its current documentation for details.

Merge Freeze

A GitHub App that blocks merges into protected branches, either on demand or on a recurring schedule, for example outside working hours. It integrates with Slack and has an API so deployment scripts can check whether a repository is frozen.

Merge Scheduler

You pick a pull request and a time. It merges the exact commit you approved, watches the GitHub Actions deploy, emails the result, and on paid plans reverts a failed deploy and runs ordered multi-repo releases.

Quick comparison

Merge FreezeMerge Scheduler
Main jobBlock merges in chosen windowsMerge at a chosen time
Merges for youNoYes
Watches the deployNo (offers a status API for scripts)Yes
Reverts a failed deployNoYes (paid plans)
SlackYesNotifications on paid plans

Using both

They do not compete. If you freeze merges outside working hours but release at night on purpose, schedule the merge for a time the freeze allows, or lift the freeze for that window. If a freeze tool blocks the merge, GitHub refuses it, and Merge Scheduler reports that the merge was blocked instead of merging anyway.

Related: GitHub auto-merge, merge queue and scheduled merge: what each is for · Releasing outside business hours: a checklist for small teams