When classic Outlook adds Contact birthdays to your default calendar, it uses your default reminder settings in Options. This creates a problem for many people because the reminder is triggered late at night.
You can change the reminders one at a time, or using a group by view and dragging between reminder groups, or you can use VBA or PowerShell scripts to make the change in a few seconds.
PowerShell is easier because you don't need to change any Outlook security settings to use it.
This does not work with new Outlook, or the Birthday calendars created in Outlook.com or Microsoft 365 Work or School mailboxes by Exchange Online.
With a little editing, this script can change the reminder time on any or all appointments.
It can run on the default calendar or on the selected calendar folder.
$olApp = new-object -comobject outlook.application $namespace = $olApp.GetNamespace("MAPI") # Default Calendars folder #$Calendars = $namespace.GetDefaultFolder(9) # Uses current folder $Calendars = ($olApp.ActiveExplorer()).CurrentFolder foreach ($Appt in $Calendars.Items) { # Change only birthdays if ($Appt.Subject -like "*Birthday") { write-host $Appt.Subject #change only all day events that have a reminder set if (($Appt.AllDayEvent -eq $true) -and ($Appt.ReminderSet -eq $true)) { #turn reminder off #$Appt.ReminderSet = False # Change the reminder time # 1080 = 18 hours, 720 = 12 hours, 360 = 6 hours $Appt.ReminderMinutesBeforeStart = 720 $Appt.Save() } } } $olApp.Quit | Out-Null [GC]::Collect()
Using PowerShell Scripts
To use PowerShell scripts with Outlook, start typing PowerShell on the start menu and open Windows PowerShell when it comes up. Windows PowerShell ISE has a scriipt pane at the top, which is useful if you want to edit the script.
Paste the entire script in the PowerShell window and press Enter or the Run button if using PowerShell ISE.
Note: PowerShell scripts will not work with new Outlook or Outlook on the web.
Saving PowerShell Scripts
If you want to save the script as a .ps1 file, paste it into Notepad and save it with the extension .ps1. To open it in the PowerShell IDE, type PowerShell on the start menu and click on Windows PowerShell IDE when the PowerShell app is found. Paste the script in the editing window.
To use it, you need to allow local scripts by running this command:
Set-ExecutionPolicy RemoteSigned
To run your saved .ps1 file, right-click on the script and choose Run with PowerShell.