Blog
Wild & Free Tools

Cron Jobs on Windows — 3 Ways to Schedule Tasks

Last updated: April 2026 8 min read

Table of Contents

  1. Method 1: Windows Task Scheduler (GUI)
  2. Method 2: PowerShell Scheduled Tasks
  3. Method 3: WSL with Real Cron
  4. Comparing All Three Methods
  5. Building Cron Expressions for Windows WSL
  6. Frequently Asked Questions

Windows doesn't have a built-in cron daemon. But you have three solid options: Windows Task Scheduler (GUI-based, no terminal needed), PowerShell Scheduled Tasks (scripted, repeatable), or WSL (Windows Subsystem for Linux, real cron inside Windows). Each has its use case — this guide helps you pick the right one.

Regardless of which method you use, you'll need a valid schedule. Build yours with our free cron expression generator and then apply the schedule in whichever Windows tool you choose.

Method 1: Windows Task Scheduler (No Command Line)

Task Scheduler is built into every Windows version. It's the most accessible option for non-developers. To open it: press Win+R, type taskschd.msc, and press Enter.

Steps to create a scheduled task:

  1. Click "Create Basic Task" in the right panel
  2. Give it a name and description
  3. Choose a trigger: Daily, Weekly, Monthly, or When I log on
  4. Set the start date and time
  5. Choose "Start a program" as the action
  6. Browse to your script (.bat, .ps1, .exe, .py, etc.)
  7. Finish the wizard

For recurring tasks like "every 15 minutes," use "Create Task" instead of "Create Basic Task" — it exposes a Repeat Task option under the Triggers tab where you can set "Repeat task every: 15 minutes for a duration of: 1 day (indefinitely)."

Task Scheduler covers most scheduling needs without any command line. The limitation: it doesn't support cron syntax directly, so you can't paste a cron expression.

Method 2: PowerShell Scheduled Tasks (Scriptable)

PowerShell lets you create Task Scheduler jobs programmatically — useful for automated deployments, IaC, or when you want to script your scheduled task setup. Run PowerShell as Administrator.

Schedule a Python script to run daily at 2 AM:

$action = New-ScheduledTaskAction -Execute "python" -Argument "C:scriptsackup.py"
$trigger = New-ScheduledTaskTrigger -Daily -At "02:00"
Register-ScheduledTask -TaskName "DailyBackup" -Action $action -Trigger $trigger -RunLevel Highest

For a recurring job every 15 minutes:

$trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Minutes 15) -Once -At (Get-Date)
Register-ScheduledTask -TaskName "Every15Min" -Action $action -Trigger $trigger

PowerShell scheduled tasks are stored in Task Scheduler and can be viewed/modified there. They survive reboots and don't require any third-party software.

Sell Custom Apparel — We Handle Printing & Free Shipping

Method 3: WSL — Real Linux Cron Inside Windows

If you're comfortable with Linux and need real cron syntax (including complex expressions that Task Scheduler can't replicate), WSL (Windows Subsystem for Linux) gives you a full Linux environment on Windows 10/11.

Install WSL if you haven't: open PowerShell as admin and run:

wsl --install

Once WSL is running (Ubuntu by default), start the cron service and edit the crontab:

sudo service cron start
crontab -e

You can access Windows files from WSL at /mnt/c/. So a cron job that runs a Windows Python script looks like:

0 2 * * * /mnt/c/Windows/py.exe /mnt/c/scripts/backup.py

The downside: WSL's cron daemon stops when WSL shuts down, and WSL can shut down if Windows goes to sleep or you close all WSL terminals. You need to ensure cron starts with WSL (via /etc/rc.local or a startup script).

Windows Cron Methods Compared

FeatureTask Scheduler (GUI)PowerShellWSL Cron
Setup difficultyEasyMediumMedium-Hard
Cron syntax supportNoNoYes
Sub-minute schedulingNoNoNo
Survives rebootYesYesRequires setup
Script any languageYesYesYes
Best forNon-developersDev/IT automationLinux devs on Windows

For most Windows users without a Linux background, Task Scheduler or PowerShell is the right answer. WSL cron makes sense if you're already using WSL for development and want your scheduling to use the same cron syntax as your Linux servers.

Building Cron Expressions for WSL

If you're using WSL, you get full cron compatibility. Use our online cron expression generator to build your schedule. The generator shows you the exact next run times so you can verify the expression is correct before adding it to your WSL crontab.

Common WSL cron patterns for Windows developers:

You can also use our crontab visualizer to paste an existing cron expression and see a calendar view of when it will fire — useful for confirming complex expressions before relying on them in production.

Try It Free — No Signup Required

Runs 100% in your browser. No account, no install, no limits.

Open Free Cron Generator

Frequently Asked Questions

Does Windows have a built-in cron equivalent?

Windows Task Scheduler is the built-in equivalent to cron. It doesn't use cron syntax, but it provides the same functionality: running scripts and programs on a schedule (daily, weekly, on login, etc.) without requiring a terminal.

Can I use cron syntax on Windows?

Not natively, but you can with WSL (Windows Subsystem for Linux). WSL gives you a real Linux environment on Windows where you can run crontab with standard cron expressions. Install WSL from the Microsoft Store or via "wsl --install" in PowerShell.

Is Windows Task Scheduler free?

Yes, Task Scheduler is included with all versions of Windows 10 and 11. It's accessible via the Start menu, by searching "Task Scheduler," or by running taskschd.msc in the Run dialog.

How do I schedule a Python script to run daily on Windows?

The easiest approach is Task Scheduler: Create a Basic Task, set trigger to Daily, and set the action to run your Python interpreter with your script as the argument. Or use PowerShell: New-ScheduledTaskAction with -Execute "python" and -Argument "C:\path\to\script.py".

Launch Your Own Clothing Brand — No Inventory, No Risk