Skip to content

Automating Your Digital Peace Quiet Hours and Focus Assist

Constant pings, banners, and chimes can turn even the calmest work session into a notification battlefield. Windows’ Focus Assist and Quiet Hours are great tools for silencing distractions — but if you have to remember to turn them on manually, you’re missing the real magic.

With a little bit of automation using Task Scheduler, you can make Focus Assist turn on and off exactly when you need it — no clicks, no “oops I forgot,” and no lost concentration.

Why Automate Focus Assist & Quiet Hours?

  • Predictable deep work — Silence notifications automatically during your prime productivity hours.
  • Meeting-friendly mode — Automatically activate Focus Assist when you start certain apps (like Zoom or PowerPoint).
  • Context-based peace — Turn it on only when your laptop is plugged in, or during specific time windows.
  • Stress-free evenings — Have notifications fade away after a set hour so you can relax.

Step 1: Know Your Focus Assist Modes

Windows offers three main levels:

  1. Off — All notifications come through.
  2. Priority Only — Only apps and contacts you’ve allowed.
  3. Alarms Only — Nothing but alarms will disturb you.

In automation, you’ll often use either Priority Only or Alarms Only.

Step 2: Creating a Task Scheduler Rule

  1. Open Task Scheduler
    Press Windows + R, type taskschd.msc, and hit Enter.
  2. Create a New Task
    Go to Action > Create Task (not “Basic Task” — you’ll want full control).
  3. Set the Trigger
    • Time-based: Example — every weekday from 9 AM to 12 PM.
    • Event-based: On workstation lock/unlock, app launch, or AC power connection.
    • Condition-based: Only run when plugged in or idle.
  4. Add the Action
    • Go to Actions > New > Start a program
    • Program/script: CopyEditpowershell.exe
    • Add arguments: pgsqlCopyEdit(New-Object -ComObject Shell.Application).ToggleDesktop() ; Start-Sleep -Milliseconds 500 ; (Get-Service -Name 'ShellHWDetection').Status (Replace with your chosen PowerShell command for enabling Focus Assist; examples below.)

Step 3: PowerShell Commands for Focus Assist

Unfortunately, Focus Assist doesn’t have a direct command-line toggle in standard Windows APIs. But you can use registry edits or third-party utilities or powershell as below to set its mode.

For example (registry method):

  • Enable Priority Only powershellCopyEditreg add HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings /v NOC_GLOBAL_SETTING_TOASTS_ENABLED /t REG_DWORD /d 0 /f
  • Disable Focus Assist powershellCopyEditreg add HKCU\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings /v NOC_GLOBAL_SETTING_TOASTS_ENABLED /t REG_DWORD /d 1 /f

(You’ll need to restart Windows Explorer or log off/on for changes to fully apply.)

Step 4: Example Automation Scenarios

  • Work Mode
    Trigger: 9 AM weekdays
    Action: Focus Assist → Priority Only
    Condition: Plugged in
  • Meeting Mode
    Trigger: When Zoom.exe starts
    Action: Focus Assist → Alarms Only
  • Evening Quiet Hours
    Trigger: 8 PM daily
    Action: Focus Assist → Priority Only

Step 5: Going Beyond Basics

  • Combine with Do Not Disturb in Microsoft Teams using Graph API calls.
  • Integrate with Bluetooth device connection (e.g., when your headset connects, Focus Assist turns on).
  • Use IFTTT or Power Automate for cross-device sync (e.g., phone + PC quiet hours match).

PowerShell Scripts for Focus Assist

1. Enable Focus Assist (Turn On Do-Not-Disturb)

powershellCopyEditSet-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings" `
  -Name "NOC_GLOBAL_SETTING_TOASTS_ENABLED" -Value 0 -Force

This disables toast notifications, effectively activating Focus Assist.


2. Disable Focus Assist (Turn Off Do-Not-Disturb)

powershellCopyEditSet-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings" `
  -Name "NOC_GLOBAL_SETTING_TOASTS_ENABLED" -Value 1 -Force

3. Comprehensive Disable (Windows 10 & 11 – including Quiet Hours)

powershellCopyEdit# Disable Quiet Hours and Do Not Disturb
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\FocusAssist" `
  -Name "QuietHoursActive" -Value 0 -Force
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\FocusAssist" `
  -Name "QuietHoursEnabled" -Value 0 -Force
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Notifications\Settings" `
  -Name "NOC_GLOBAL_SETTING_DND" -Value 0 -Force

This script updates additional focus-related registry keys for consistent control across Windows versions.

How to Use These Scripts

  1. Save the script(s) in .ps1 files (e.g., Enable-FocusAssist.ps1, Disable-FocusAssist.ps1).
  2. Run them under the current user context — they modify HKCU keys, so they won’t affect other users unless run in their session.
  3. Automate with Task Scheduler:
    • Action: powershell.exe
    • Arguments: arduinoCopyEdit-ExecutionPolicy Bypass -File "C:\Path\To\Enable-FocusAssist.ps1"
  4. You can also deploy them via login scripts or management tools like Intune or Group Policy Preferences.

Quick Reference Table

ScenarioRegistry Key & Value
Enable Focus Assist (DND)NOC_GLOBAL_SETTING_TOASTS_ENABLED = 0
Disable Focus AssistNOC_GLOBAL_SETTING_TOASTS_ENABLED = 1
Fully disable (incl. Quiet Hours)QuietHoursActive = 0, QuietHoursEnabled = 0, NOC_GLOBAL_SETTING_DND = 0

The Payoff

With Task Scheduler and Focus Assist working in harmony, you’ll stop thinking about when to mute your notifications — and just enjoy the quiet. Your workflow becomes more predictable, your meetings less interrupted, and your evenings more peaceful.


Discover more from Dellenny

Subscribe to get the latest posts sent to your email.

Discover more from Dellenny

Subscribe now to keep reading and get access to the full archive.

Continue reading