Task Scheduler has shipped with every version of Windows since XP, but most people only ever encounter it indirectly — as the thing quietly running Windows Update checks or an antivirus scan in the background. It's also available for you to use directly: any program, script, or batch file can be set to run automatically on a schedule, at login, at idle, or in response to a specific system event, without installing anything extra.
Opening It
Press Win, type "Task Scheduler," and open it — or run taskschd.msc from the Run dialog (Win+R). The main window shows a tree of task folders on the left and, once you select one, a list of tasks with their last run result and next scheduled run on the right.
Creating a Basic Task
- Click "Create Basic Task" in the right-hand Actions pane (not "Create Task" yet — that's the advanced version).
- Give it a name and description. The description matters more than it seems — six months from now you won't remember what "Task3" does.
- Choose a trigger: Daily, Weekly, Monthly, One time, When the computer starts, When I log on, or When a specific event is logged.
- Set the time and recurrence for that trigger.
- Choose the action: Start a Program is the option you'll use almost every time — point it at an .exe, a .bat file, or a PowerShell script.
- Review the summary screen and finish. The task now appears in the Task Scheduler Library.
Why "Create Basic Task" Isn't Always Enough
The basic wizard covers simple cases well, but skips several options that matter for anything running unattended for real work:
- Run whether user is logged on or not — found under the task's Properties → General tab after creation, not in the basic wizard. Without this, a scheduled backup won't run if you're logged out.
- Run with highest privileges — required if the task needs administrator rights, also on the General tab.
- Conditions — the Conditions tab lets you require the machine be on AC power (useful for laptops, so a scheduled task doesn't drain the battery) or idle for a period before starting.
- Multiple triggers on one task — the basic wizard creates one trigger; edit the task afterward to add a second, like "daily at 2am" plus "also at startup if the 2am run was missed."
A Practical Example: Scheduled Backup Script
If you already run a manual backup script or use robocopy to mirror a folder to an external drive or NAS, Task Scheduler turns that into something that happens without you remembering to do it. Set the action to run PowerShell or Command Prompt with the script as an argument, set "Run whether user is logged on or not," and require AC power if it's a laptop. This pairs well with a broader 3-2-1 backup routine — scheduling the local mirror step is the part people forget to keep doing once the novelty of setting it up wears off.
Checking Whether a Task Actually Ran
Select a task and look at the "Last Run Result" column — 0x0 means success. Anything else is an error code worth looking up, though the most common ones (0x1 for a generic failure, 0x41303 for "task is currently running") are usually self-explanatory once you know what they map to. The History tab (enable it via Action → Enable All Tasks History in the main window first, since it's off by default) shows a full log of every trigger, run, and result for a selected task.
Cleaning Up After Yourself
Right-click any task to Disable it temporarily without deleting it, or Delete it outright once it's no longer needed. Disabled tasks stay visible in the library with a grayed-out icon, which is useful if you're not sure yet whether you'll need it again versus wanting to remove it permanently.
Task Scheduler vs. Third-Party Automation Tools
Task Scheduler is reliable and requires nothing extra installed, but its interface for anything beyond a simple trigger-and-action is dated and unforgiving of typos in file paths. If what you actually want is keyboard-triggered automation — a hotkey that fills a form or launches a specific window layout — that's a different tool for a different job; see our guide to AutoHotkey automation scripts. Task Scheduler is for "run this automatically on a timer," AutoHotkey is for "run this when I press a key."
Microsoft's full reference for Task Scheduler, including the command-line schtasks utility for scripting task creation itself, is documented at learn.microsoft.com.