How do I use AppleScript or Automator to turn Time Announce on or off at specified times?
UPDATE: This works for me using the latest version of High Sierra. 

This version will "turn on" "Announce the time:" if not already enabled

property thePassword : "yourpassword"

tell application "System Preferences"
    reveal anchor "ClockPref" of pane id "com.apple.preference.datetime"
    tell application "System Events"
        delay 0.5
        my enterPassword()
        set theValue to get value of checkbox "Announce the time:" of tab group 1 of window "Date &amp; Time" of application process "System Preferences"
        if theValue is 0 then
            click checkbox "Announce the time:" of tab group 1 of window "Date &amp; Time" of application process "System Preferences"
        end if
    end tell
    delay 1
    quit
end tell


on enterPassword()
    tell application "System Events"
        try
            click button "Click the lock to make changes." of window "Date &amp; Time" of application process "System Preferences"
        end try
        delay 1
        --activate
        set value of text field "Enter password" of sheet 1 of window "Date &amp; Time" of application process "System Preferences" to thePassword
        delay 1
        click UI element "Unlock" of sheet 1 of window "Date &amp; Time" of application process "System Preferences"
    end tell
end enterPassword




This version will "turn off" "Announce the time:" if already enabled

property thePassword : "yourpassword"

tell application "System Preferences"
    reveal anchor "ClockPref" of pane id "com.apple.preference.datetime"
    tell application "System Events"
        delay 0.5
        my enterPassword()
        set theValue to get value of checkbox "Announce the time:" of tab group 1 of window "Date &amp; Time" of application process "System Preferences"
        if theValue is 1 then
            click checkbox "Announce the time:" of tab group 1 of window "Date &amp; Time" of application process "System Preferences"
        end if
    end tell
    delay 1
    quit
end tell


on enterPassword()
    tell application "System Events"
        try
            click button "Click the lock to make changes." of window "Date &amp; Time" of application process "System Preferences"
        end try
        delay 1
        --activate
        set value of text field "Enter password" of sheet 1 of window "Date &amp; Time" of application process "System Preferences" to thePassword
        delay 1
        click UI element "Unlock" of sheet 1 of window "Date &amp; Time" of application process "System Preferences"
    end tell
end enterPassword








I could have set the script to perform the action of clicking checkbox "Announce the time:" if it was not enabled already… with conditional statements of setting enabled or disabled of that checkbox during certain times.  I figured, for now, it would just be easier to save two different versions of the script.  One version for turning on checkbox "Announce the time:"  and one version for turning off checkbox "Announce the time:”.  In ScriptEditor, just saved each version of the script as applications.  From there just simply open Calendar.app and create two new calender events. one event for enabling checkbox "Announce the time:" at whatever time you choose.  And another for disabling..  Once you create the event, just create a custom alert and select the option of open file then choose your script which you saved as an app.