How to Make Windows Speak the Time Out Loud Every Hour
Pinterest Whatsapp
Advertisement

It’s easy to lose track of time when you’re working at your computer. Using time-tracking apps 7 Easy-to-Use Time Tracking Apps for Any Project Anywhere 7 Easy-to-Use Time Tracking Apps for Any Project Anywhere Do you track your time? Let's see how time tracking can help you as we recommend some of the best time tracker apps that are available across all platforms today. Read More can help you figure out where the hours went, but for some, hearing the time spoken out loud can help keep track of time.

While macOS has a time announcement feature built in, there’s nothing like this in Windows. Luckily, you can add it yourself in just a few moments.

How to Make Windows Speak the Time Out Loud

  1. Open Notepad or another text editor and paste the following:
    Dim speaks, speech
    hour_now=hour(time)
    if hour_now > 12 or hour_now = 12 Then
    hour12 = hour_now - 12
    ampm = "PM"
    Else
    hour12 = hour_now
    hourfinal = hour_now
    ampm = "AM"
    End If
    If hour12 = 10 Then
    hourfinal = "Ten"
    Elseif hour12 = 11 Then
    hourfinal = "Eleven"
    Elseif hour12 = 12 Then
    hourfinal = "Twelve"
    Elseif hour12 = 0 Then
    hourfinal = "Twelve"
    Elseif hour12 > 0 and hour12 < 10 Then
    hourfinal = hour12
    End If
    speaks = "It is " & hourfinal & " o clock " & ampm
    Set speech=CreateObject("sapi.spvoice")
    speech.Speak speaks
  2. Save this to a convenient location. Name the file whatever you want (perhaps TimeAnnounce), but make sure it ends in .vbs (a Visual Basic script).
  3. Type Task Scheduler into the Start Menu to open the Task Scheduler utility The Windows 10 Task Scheduler Gives You More Power The Windows 10 Task Scheduler Gives You More Power The Task Scheduler automatically executes events in the background. In Windows 10, Battery Saver mode modifies the Task Scheduler to use less energy. We'll show you how to take advantage of this feature and more. Read More .
  4. Select Action > Create Task from the menu bar.
  5. Enter a Name for the task, like Announce Time.
  6. Switch to the Triggers tab and click the New button.
  7. Make sure One time is selected. Next to Start, select today’s date and choose the start of the next hour. For example, if it’s 10:37am, choose 11:00:00.
  8. Check the box for Repeat task every and choose 1 hour. Choose Indefinitely next to for a duration of and click the OK button.
  9. Switch to the Actions tab and click New. Click Browse next to the Program/script box and find the VBS file you made earlier.
  10. Click OK and you’ve created your task. You’ll hear the default text-to-speech voice announce the time at the top of every hour.

Windows Announce Time Trigger

No matter your method, you should consider some ways to make sure you meet your time management goals 9 Surefire Ways to Follow Through on Your Time Management Goals 9 Surefire Ways to Follow Through on Your Time Management Goals You want to meet your time management goals but just can’t seem to follow through. These tips and tools will help you take them more seriously. Read More .

Explore more about: Windows Task Scheduler, Windows Tricks.

Enjoyed this article? Stay informed by joining our newsletter!

Enter your Email

Leave a Reply

Your email address will not be published. Required fields are marked *

  1. Lorne Wolf MacKenzie
    June 22, 2018 at 5:00 am

    Am trying to make use of this posting & the posted comment about the minutes being added as well. Found it was a great idea, yet would prefer to somehow modify the code to read out more than just "the Hour" like the other person had. Trying to combine the 2 codes' so that can get it to speak every half hour & CORRECTLY as I found that despite using the original code, it stuck to the "hour that was scheduled to start @" in the Scheduler for some reason. Am sending a copy of the Code that am trying to use to accomplish this feat in hopes of an experienced feedback as to how it should be so it will give the Spoken every 30 minutes & accurately...

    Dim speaks, speech
    currHour=hour(time)
    currMinute=minute(time)
    If currHour=0 then
    mHour=12
    meridian="A,M"
    ElseIf currHour > 12 then
    mHour = currHour - 12
    meridian="P,M"
    else
    mHour=currHour
    meridian="A,M"
    End If
    onesMin = currMinute Mod 10
    tensMin = currMinute - onesMin
    if tensMin=0 and onesMin=0 then
    tensMin=60
    onesMin=0
    elseif tensMin = 10 then
    tensMin=currMinute
    onesMin=0
    end if
    sHour=getNumberToSay(mHour)
    sTens=getNumberToSay(tensMin)
    sOnes=getNumberToSay(onesMin)

    speaks = "It is now " & sHour & " : " & sTens & " " & sOnes & " : " & meridian
    Set speech=CreateObject("sapi.spvoice")
    speech.Speak speaks

  2. Boter
    May 2, 2018 at 4:35 pm

    For your consideration;

    I use a similar trick, but I use it as a poor man's pomodoro timer. So I create the scheduled task, but set it to 20 minutes, then from the cmd line I can call "SCHTASKS /Run /TN "My Timer" " (which I have in a batch file, in my path, called t.bat - so I only really need to type t) and force my task to run, and it counts out every 20.

    Note: some of the oddities with the strings are based around getting a clear pronunciation from SpVoice.

    currHour=hour(time)
    currMinute=minute(time)

    If currHour = 0 then
    mHour = 12
    meridian = "A,M"
    ElseIf currHour > 12 then
    mHour = currHour - 12
    meridian = "P,M"
    else
    mHour = currHour
    meridian = "A,M"
    End If

    onesMin = currMinute Mod 10
    tensMin = currMinute - onesMin

    if tensMin = 0 and onesMin = 0 then
    tensMin = 60
    onesMin = 0
    elseif tensMin = 10 then
    tensMin = currMinute
    onesMin = 0
    end if

    sHour = getNumberToSay(mHour)
    sTens = getNumberToSay(tensMin)
    if onesMin 0 then
    sOnes = getNumberToSay(onesMin)
    end if

    words = "The time is now " & sHour & " : " & sTens & " " & sOnes & " : " & meridian

    Set speech=CreateObject("sapi.spvoice")
    speech.Speak words

    Function getNumberToSay(Number)
    Select Case Number
    Case "0":
    getNumberToSay = "O"
    Case "1":
    getNumberToSay = "one"
    Case "2":
    getNumberToSay = "two"
    Case "3":
    getNumberToSay = "three"
    Case "4":
    getNumberToSay = "four"
    Case "5":
    getNumberToSay = "five"
    Case "6":
    getNumberToSay = "six"
    Case "7":
    getNumberToSay = "seven"
    Case "8":
    getNumberToSay = "eight"
    Case "9":
    getNumberToSay = "nine"
    Case "10":
    getNumberToSay = "ten"
    Case "11":
    getNumberToSay = "eleven"
    Case "12":
    getNumberToSay = "twelve"
    Case "13":
    getNumberToSay = "thir teen"
    Case "14":
    getNumberToSay = "four teen"
    Case "15":
    getNumberToSay = "fif teen"
    Case "16":
    getNumberToSay = "six teen"
    Case "17":
    getNumberToSay = "seven teen"
    Case "18":
    getNumberToSay = "eight teen"
    Case "19":
    getNumberToSay = "nine teen"
    Case "20":
    getNumberToSay = "twenty"
    Case "30":
    getNumberToSay = "thirty"
    Case "40":
    getNumberToSay = "forty"
    Case "50":
    getNumberToSay = "fifty"
    Case "60":
    getNumberToSay = "Oh clock"
    Case "":
    WScript.quit
    End Select
    End function

  3. David Conrad
    May 1, 2018 at 11:11 pm

    Not sure I'm following all your code, but just for the record: There's no such time as "12 am" or "12 pm." There's only "12 noon" and "12 midnight." If it's one minute before or after 12, then "am" or "pm" is appropriate. But when it's 12 precisely, it has to be either "12 noon" or "12 midnight" -- not "12 am" or "12 pm."

    As I say, I'm not sure that that changes your code at all--I'm just mentioning it.

    Anyway, thanks for the nifty code!

    • Ben Stegner
      May 2, 2018 at 1:50 am

      You're right, but as this isn't a mission-critical use of time I don't think many people will mind. It's not like someone won't know if it's midnight or noon when they hear it, hahaha. Thanks for mentioning this though!

      This is why 24-hour time is more straightforward :)

  4. Ron MVP
    May 1, 2018 at 9:02 pm

    My first try at task scheduler too.
    I think this will be a real help, when it works.
    Double click on file in Explorer, it runs
    I've setup the task, it appears to run on time, BUT it does not run. I get the prompt asking "How do you want to open this file".

    Have I set something wrong?

    I could not find an option to edit it. All I could do was delete and recreate (still didn't work).

  5. SnowFlake816
    May 1, 2018 at 12:08 pm

    Really nice tip! This is my first ever use of Task Scheduler. Thanks for sharing!

    • Ben Stegner
      May 1, 2018 at 9:14 pm

      Glad it helped you!