Create / edit a Scheduled Job/Task. The job can be created on the local or a remote computer.


   Create a new scheduled task:
   SCHTASKS /Create [Connect_Options] Create_Options /TN taskname

   Delete the scheduled task(s)
   SCHTASKS /Delete [Connect_Options] /TN taskname [/F]
   Display one or all scheduled tasks:
   SCHTASKS /Query  [Connect_Options] [/FO format | /XML] [/NH] [/V] [/TN taskname]
   Run the scheduled task on demand:
   SCHTASKS /Run [Connect_Options] /TN taskname

   Stop the currently running scheduled task:
   SCHTASKS /End [Connect_Options] /TN taskname

   Change the properties of scheduled task, Enable or Disable a task:
   SCHTASKS /Change [Connect_Options] {[/RU username] [/RP password] [/TR taskrun]} /TN taskname
      [/ST starttime]  [/RI interval] [ {/ET endtime | /DU duration} [/K] ] [/SD startdate] [/ED enddate]
         [/ENABLE | /DISABLE] [/RL level] [/IT] [/Z]

   Show the security identifier corresponding to a scheduled task name:
   SCHTASKS /ShowSID [Connect_Options] /TN taskname

     /S system                      # Remote system (default is local)
    [/U username [/P password]]     # Submit job under this name

    /TN taskname                    # A name which uniquely identifies the scheduled task.
    /TR taskrun                     # Pathname of the executable to run.
    [/ST starttime]                 # HH:MM (24 hour)
    [/RU username [/RP password]]   # Run job as this user.
    /SC schedule                    # The schedule frequency:
                                        MINUTE, HOURLY, DAILY, WEEKLY, MONTHLY, ONCE, ONSTART,ONLOGON,ONIDLE.
    [/MO modifier]                  # When to run:
          MINUTE:  1 - 1439 minutes.
          HOURLY:  1 - 23   hours.
          DAILY:   1 - 365  days.
          WEEKLY:  1 - 52   weeks.
          ONCE:             No modifiers.
          ONSTART:          No modifiers, runs every time the system starts. Optionally specify a start date.
          ONLOGON:          No modifiers, runs whenever a user (any user) logs on. Optionally specify a start date.
          ONIDLE:           No modifiers. Specify a start date, or run the next time the system is idle.
          ONEVENT: XPath event query string.

    [/D day]                        # Day = MON,TUE,WED,THU,FRI,SAT,SUN
    [/M months]                     # Month=JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC.
    [/I idletime]                   # 1 - 999 minutes (ONIDLE task only)
    [/SD startdate] [/ED enddate]   # Start / End date in Region specific format e.g. "12/12/2015"

    [/RI interval]                  # Repetition Interval in minutes. 
                                      N/A for schedule types: MINUTE, HOURLY, ONSTART, ONLOGON, ONIDLE, and ONEVENT.
                                      If either /ET or /DU is specified, the default is 10 minutes.
                                      Range is 1 - 599940 minutes.

    [/DELAY delaytime]              # Specify the wait time to delay the task after the trigger is fired.
                                      This option is only valid for schedule types ONSTART, ONLOGON, and ONEVENT.
                                      The time format is mmmm:ss.

    [/EC ChannelName]               # Specify the event channel for an ONEVENT trigger.
    [/RL level]                     # Set the run level for the task. LIMITED or HIGHEST. Default= LIMITED. 
    [{/ET endtime | /DU duration} ] # End time/Duration to run as HH:mm (24-hour time). e.g. 14:50
    [/F]                            # Force, create the task and suppress warnings if the specified task already exists.
    [/K]                            # Kill/Terminate the task at the end time or duration time.
                                      N/A for schedule types: ONSTART, ONLOGON, ONIDLE, and ONEVENT. Either /ET or /DU must be specified.

    [/NP]                           # No password is stored. The task will not run interactively as the given user.
                                      Only local resources are available.

    [/XML xmlfile]                  # Create a task from an XML file. (These are found in the 'Tasks' folder)
                                      This can be combined with /RU and /RP switches, or with the /RP switch alone when
                                      the task XML already contains the principal. 

    [/V1]]                          # Create a task visible to Windows 2000, 2003, and XP.
    [/IT]                           # Interactive, enable the task to run interactively only if /RU user is
                                      currently logged on at the time the task runs. The task runs only if the user is logged on.
    [/Z]                            # Delete the task after its final run.

 Query Options:

    /FO   Output format: TABLE, LIST, CSV
    /NH   No header
    /V    Verbose output

For MONTHLY schedules give the DAY as a number 1 - 31 (default=1)

To prompt for the password, specify /RP * or /RP none

The User Account under which the Schedule service runs will require specific file access permissions, user permissions and drive mappings.

If the /RU username and /RP Password parameters match the currently logged-in user, the task will run interactively (visible in the foreground).

For the system account, /RU username can be written as "", "NT AUTHORITY\SYSTEM" or "SYSTEM", a Password is not required. The system account has full access to the local machine but has no permissions on any other machines (or mapped drives) across the Network.

The new task must be set to start a minimum of 1 minute into the future.

In Window Server 2019, recurrring tasks set to run Daily during a clock change or more than once per day may fail to run at all [x]. Workarounds for this:

In the Task Scheduler GUI the task properties include a tick box for "Hidden", this does not minify or hide the command window, but does hide the task from Task Scheduler’s list of tasks. (The menu View > Show hidden tasks is by default ticked.)
To run a command script and hide the window from appearing, call the task using VBScript.Run

By default SCHTASKS event logs are disabled. They can be enabled if needed using WEVUTIL.

PowerShell cmdlets

SCHTASKS.exe is limited to commands with less than 255 characters and does not have access to all of Scheduler 2.0 options such as "Wake up the machine to run this task".

These additional options are available via the GUI or by using the Task Scheduler PowerShell cmdlets.

UAC (User Account Control) prompts.

If a scheduled task invokes a UAC prompt, then the task will fail to run unattended.
To prevent this make sure that you select the 'Run With Highest Privileges' check box:

Elevate Scheduled task

Other languages.

If you are running a non-english language version of Windows then the Days and Months accepted by SCHTASKS might be localised.
e.g. Italian days: lun,mar,mer,gio,ven,sab,dom Italian months: gen,feb,mar,apr,mag,giu,lug,set,ott,nov,dic.


Create a task to run at 11 pm every weekday

SCHTASKS /Create /SC weekly /D MON,TUE,WED,THU,FRI /TN MyDailyBackup /ST 23:00 /TR c:\backup.cmd /RU MyDomain\MyLogin /RP MyPassword

Now delete the task:

SCHTASKS /Delete /TN "MyDailyBackup" /f

Create a one-off task to run a script at exactly12 midday:

SCHTASKS /create /tn "once only" /tr "\"c:\my folder\one.cmd\" arguments" /sc ONCE /sd 12/29/2014 /st 12:00

From PowerShell create a new task called 'GetFridayData' to run a PowerShell script every Friday at 18:30:

PS C:\> $Taskpath = "%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -command 'C:\batch\friday.ps1'" 
PS C:\> SCHTASKS /create /SC weekly /ST 18:30 /D FRI /TN GetFridayData /tr $Taskpath

Create a daily task to run a script at 5 pm:

SCHTASKS /create /tn "My Script" /tr "\"c:\my folder\script.cmd\" arguments" /sc daily /sd 12/29/2014 /st 17:00

Create a task ready to run on demand - this is done by creating a task scheduled far in the past:

SCHTASKS /create /tn "On demand demo" /tr "C:\Windows\notepad.exe" /sc ONCE /sd 01/01/1910 /st 00:00

Task Scheduler options are stored in the registry


“We don’t wake up for less than $10,000 a day” ~ Linda Evangelista

Related commands

Q823093 - Scheduled task does not run when the Path contains a space.
WAITFOR - Wait for or send a signal.
POWERCFG /WakeTimers - Configure power settings, list wake timers.
PowerShell: To schedule a PowerShell script or task call Powershell.exe
Equivalent bash command (linux): crontab - Schedule a command to run at a later time.

Copyright © 1999-2024
Some rights reserved