-
Notifications
You must be signed in to change notification settings - Fork 3
Patching Walkthrough Monthly
Monthly cadence mode (MonthlyPatchingCadenceEnabled = true) restricts the apply phase to a specific day of the month — by default, the 2nd Tuesday. Updates are discovered and downloaded in the background throughout the month, but users are not prompted to install them until that designated patch day arrives.
This mirrors a traditional IT "Patch Tuesday" workflow: predictable for users, controllable for administrators.
See also: Patching Walkthrough: Deadline-Based Mode
| Preference Key | Default | What It Controls |
|---|---|---|
MonthlyPatchingCadenceEnabled |
true |
Enables monthly mode |
PatchingWeekday |
3 (Tuesday) |
Day of week for patching (1=Sun … 7=Sat) |
PatchingWeekOfMonth |
2 |
Which occurrence of that weekday |
PatchingStartTime |
"" (no limit) |
Earliest time to begin applying |
PatchingEndTime |
"" (no limit) |
Latest time to begin applying |
ApplyIntervalHours |
24 hours | How often apply retries after the patch day passes |
DeferralCountdownSeconds |
300 (5 min) | Timer on the deferral prompt before auto-action |
DeferralAutomaticAction |
defer |
What happens when the timer expires unattended |
DeferralTimerDefault |
1440 min (24 hrs) | Default deferral duration when timer expires |
DeferralTimerMenu |
5, 30, 60, 120, 480, 1440 | Minutes available in the Defer dropdown |
DeferralTimerFocus |
60 min (1 hr) | Auto-defer duration when Focus/DND is active |
DeadlineDaysFocus |
4 days | Days after patch day before Focus/DND is ignored |
DeadlineDaysHard |
14 days | Days after patch day before deferral is no longer allowed |
BlockingProcessAction |
prompt |
What happens when a required app is running |
BlockingProcessCountdownSeconds |
120 (2 min) | Timer on the blocking-process prompt |
Key difference from deadline mode: In monthly mode, deadline counters (
DeadlineDaysFocus,DeadlineDaysHard) count from the patch day, not from when updates were first discovered. A user has 4 days after patch day before Focus is ignored, and 14 days after patch day before they lose the ability to defer — regardless of how long updates sat staged before the patch day.
Month: April 2026
Patch day: 2nd Tuesday = Tuesday, April 14
Situation: Google Chrome and Zoom have updates available. They were discovered and staged the week before the patch day. The user defers a couple of times after patch day, then eventually installs.
From when updates are discovered until patch day, everything happens silently in the background. The user sees nothing.
| Date | Background Activity |
|---|---|
| Mon Apr 6 | Scheduled check detects Chrome and Zoom are out of date |
| Mon Apr 6 | Stage downloads both installers to the local cache |
| Tue Apr 7–Mon Apr 13 | Scheduler wakes every 10 minutes; apply phase evaluates but finds patch day has not arrived — exits without prompting |
The user's Mac is quietly prepared. On any given morning from April 7 onward, if the user opened their Applications folder they would see nothing has changed — updates are staged but not installed.
On the first scheduler wake on or after the patch day, apply runs and the deferral prompt appears.
What the user sees:
Third Party Patcher
You have 2 software updates that are ready to be installed.
(Infobox: Days Pending: 0 · Times Deferred: 0)
[Defer ▾] [Continue]
Timer: 5:00 counting down
User choices and outcomes:
| Action | Result |
|---|---|
| Clicks Continue | Proceeds immediately to installation |
| Selects a duration and clicks Defer | Update postponed for chosen duration |
| Does nothing (timer reaches 0:00) | Automatically deferred 24 hours; prompt dismisses itself |
In this example: The user is in a morning meeting and doesn't respond. The prompt auto-dismisses after 5 minutes, and the update is automatically deferred 24 hours.
24 hours later, the deferral expires. apply runs again.
What the user sees:
(Infobox: Days Pending: 1 · Times Deferred: 1)
[Defer ▾] [Continue]
In this example: The user sees the prompt, selects Defer — 8 hours, and clicks Defer.
8 hours later, the deferral expires. Apply runs again in the afternoon. The user defers 24 hours again.
The user continues to defer once per day. The scheduler respects each deferral and waits the full duration before prompting again.
| Date | Infobox Shown | User Action |
|---|---|---|
| Apr 16 | Days Pending: 2 · Times Deferred: 3 | Defers 24 hrs |
| Apr 17 | Days Pending: 3 · Times Deferred: 4 | Defers 24 hrs |
DeadlineDaysFocus (4 days) is reached, measured from the patch day of April 14.
From this point:
- Focus/DND is ignored. Apply runs and shows the prompt even during active Focus or Do Not Disturb.
- The user can still choose to defer — only the hard deadline removes that option.
In this example: The user has Focus enabled for a focused work block. The prompt appears anyway. The user sees it, defers 24 hours, and goes back to work.
The user continues to defer. Each prompt shows the escalating count.
| Date | Days After Patch Day | Infobox | User Action |
|---|---|---|---|
| Apr 19 | Day 5 | Pending: 5 · Deferred: 6 | Defers 24 hrs |
| Apr 22 | Day 8 | Pending: 8 · Deferred: 9 | Defers 24 hrs |
| Apr 25 | Day 11 | Pending: 11 · Deferred: 12 | Defers 24 hrs |
| Apr 27 | Day 13 | Pending: 13 · Deferred: 14 | Defers 24 hrs |
DeadlineDaysHard (14 days) is reached, measured from the patch day of April 14. The user can no longer defer.
What the user sees:
Third Party Patcher
You have 2 software updates that are ready to be installed.
Installation is required — the maximum deferral deadline has been reached.
(Infobox: Days Pending: 14 · Times Deferred: 14)
[Continue]
The Defer button is gone. The user must click Continue, or the 5-minute countdown expires and installation begins automatically.
When the user clicks Continue, the progress window appears:
Third Party Patcher
There are 2 updates waiting.
The following updates are being applied:
App Status 🌐 Google Chrome ⟳ Installing… 📹 Zoom ⏳ Waiting Progress: [██████░░░░] Installing [1/2] Google Chrome…
[Running…] (button disabled during install)
After both apps complete:
App Status 🌐 Google Chrome ✅ → 125.0.6422.78 📹 Zoom ✅ → 6.3.0 Complete — 2 updates applied successfully
[Done]
The user clicks Done (or the window auto-closes after 60 seconds). The deferral count resets to zero.
If Zoom is running when its installer tries to run, a separate prompt appears:
Zoom Update Paused
Zoom needs to be updated, but Zoom is currently running.
Please save your work and quit Zoom before the timer expires, or click Skip to postpone this update.
Timer: 2:00 counting down
[Skip Update] [Quit Zoom]
| Action | Result |
|---|---|
| Clicks Quit Zoom | Zoom is force-quit; installation proceeds immediately |
| Clicks Skip Update | Zoom skipped this cycle; Chrome still installs |
| Timer reaches 0:00 | Zoom is force-quit automatically; installation proceeds |
A skipped item is retried on the next apply attempt (24 hours later by default).
After April 28's successful install, the deferral count resets. The next patch day is the 2nd Tuesday of May 2026 — May 12. From now until May 12, the cycle repeats:
- Background check and stage run silently every 4 hours
- Any new updates discovered are staged automatically
- No prompts appear until May 12
April 2026
Mon Apr 6 ─── Updates discovered and staged ─────────── (user sees nothing)
Tue Apr 7 ─
Wed Apr 8 ─ Silent background activity only. (user sees nothing)
Thu Apr 9 ─ apply runs every 10 min but (user sees nothing)
Fri Apr 10 ─ patch day has not arrived yet. (user sees nothing)
Sat Apr 11 ─ (user sees nothing)
Sun Apr 12 ─ (user sees nothing)
Mon Apr 13 ─ (user sees nothing)
Tue Apr 14 ─── PATCH DAY ─────────────────────────────── [First prompt: auto-deferred]
Wed Apr 15 ─── Day 1 after patch day ──────────────────── [Prompt: user defers]
Thu Apr 16 ─── Day 2 ──────────────────────────────────── [Prompt: user defers]
Fri Apr 17 ─── Day 3 ──────────────────────────────────── [Prompt: user defers]
Sat Apr 18 ─── Day 4 — Focus deadline ─────────────────── [Prompt shown despite Focus]
...
Mon Apr 28 ─── Day 14 — Hard deadline ─────────────────── [Defer button gone: install required]
| Aspect | Monthly Cadence | Deadline-Based |
|---|---|---|
| When apply first runs | Patch day only | As soon as updates are staged |
| User prompt frequency | Daily after patch day | Daily from when updates are staged |
| Focus deadline counts from | Patch day |
firstPendingDate (when staged) |
| Hard deadline counts from | Patch day |
firstPendingDate (when staged) |
| Predictability for users | High — same day every month | Variable — depends on when updates appear |
| Good for | Regulated or change-controlled environments | Continuous patching with rolling deadlines |
Administrator note: Use
patcherreport deferralsto see a per-label record of every prompt shown and every deferral taken. In monthly mode this report is especially useful after patch day to identify devices that deferred repeatedly and are approaching the hard deadline.