Решение, которое работает для меня, заключается в выполнении этой команды после запуска Календаря:
defaults write com.apple.iCal NSDontMakeMainWindowKey YES
Это было немного больно, так как вы должны помнить, чтобы делать это после запуска Календаря, что я всегда забуду сделать. Поэтому я написал небольшой скрипт launchctl, чтобы сделать это для меня.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd> <plist version="1.0"> <dict>
    <key>Label</key>
    <string>CalendarSquelch</string>
    <key>ProgramArguments</key>
    <array>
    <string>osascript</string>
    <string>-e</string>
    <string>tell application "System Events"
        set p to name of processes
        if p contains "Calendar" then
            do shell script "defaults write com.apple.iCal NSDontMakeMainWindowKey YES"
        end if
        end tell</string>
    </array>
    <key>StartInterval</key>
    <integer>300</integer> </dict> </plist>
Этот скрипт проверяет каждые 5 минут, чтобы увидеть, работает ли Календарь. Если это так, то он выполняет эту маленькую команду по умолчанию.  Сохраните этот файл в ~/Library/LaunchAgents/CalendarSquelch.plist
Затем выполните следующую команду, чтобы активировать его:
launchctl load ~/Library/LaunchAgents/CalendarSquelch.plist 
Все это было сделано на macOS Sierra.