Skip to content

Scheduling

The free version of Power Automate Desktop doesn’t have a scheduled run feature. This means you can’t start a flow automatically at a specific date and time.

Instead, you can create a flow that loops indefinitely, gets the current time, and branches only when a specific time is reached.

This article explains how to do that.

As a sample, I created a flow that keeps looping and does something only at 8:00 in the morning.

Copy the following code and paste it into the Power Automate Desktop flow designer to add the actions.

LOOP FROM 0 TO 1 STEP 0
DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateAndTime CurrentDateTime=> CurrentDateTime
Text.ConvertDateTimeToText.FromCustomDateTime DateTime: CurrentDateTime CustomFormat: $'''HH''' Result=> CurrentHour
Text.ConvertDateTimeToText.FromCustomDateTime DateTime: CurrentDateTime CustomFormat: $'''mm''' Result=> CurrentMinute
IF (CurrentHour = '08' AND CurrentMinute = '00') = True THEN
Display.ShowMessageDialog.ShowMessage Title: $'''The specified time has arrived.''' Message: $'''It is 8:00 AM!''' Icon: Display.Icon.Information Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False
END
WAIT 60
END

The IF statement contains multiple conditions. For details on this technique, see the following page.

In this sample, the loop runs every minute and only does something at 8:00.

However, if the condition only checked whether it was in the 8 o’clock hour, the actions inside the IF statement would run about 60 times.

You need to prevent duplicate runs, for example by defining a variable that tracks whether the processing has already run and setting it once the processing runs.

“WAIT 60” only waits 60 seconds, so each iteration takes slightly longer than 60 seconds by the time the actions in the loop take to run. As a result, on rare occasions, no check happens during the minute of 8:00, and the processing doesn’t run. If you need it to run reliably, shorten the wait time and combine it with the “already run” flag described above.