How to run a program on a timetable with Schedule by Zaweba
Set up a program job in Schedule by Zaweba with arguments and a working folder, choose whether to wait or show a window, and read its exit code in the history.

Running a program at a set time is the oldest job a scheduler has, and Schedule by Zaweba treats it with care. A program job names the program, the arguments to pass it and the working folder to start it in. You decide whether Schedule waits for it to finish or just starts it, and whether it shows a window. When it finishes, its exit code goes into the history, so you can see at a glance whether it worked.
Most people come to this after a script, a converter or a tool they use by hand starts to feel like something the computer should remember for them. A program job is how you hand it over.
The parts of a program job
The program is the file to run, usually an .exe. The arguments are whatever you would type after its name at a command prompt: a file to work on, a switch to make it run quietly, a folder to write to. The working folder is where the program starts, which matters more than people expect. Many tools look for their settings, or write their output, relative to the folder they start in, and a program that works perfectly when you double-click it can fail on a timetable because it started somewhere else. Set the working folder to wherever the program expects to be.
Wait for it, or just start it
Waiting means Schedule keeps track of the program until it ends. That gives you the exit code, and it is what makes the rest of Schedule's reliability features useful: a time limit can stop the job and every process it started if it runs too long, retries can repeat it after a delay if it fails, and a chain can run another job after it succeeds, fails or finishes.
Just starting it is for programs that are meant to keep running, such as an app you want open each morning. Schedule launches it and moves on. There is no exit code to record, because the program has not finished.
As a rule, wait for anything that does a job and stops. Just start anything you mean to leave running.
With or without a window
A program can be shown with its window or without one. Hide the window for background work, such as a command-line tool that converts files overnight, so nothing flashes up while you are working. Show it when you want to see the program, or when it needs you to look at it.
If a program asks a question and waits for an answer, it is not a good fit for an unattended job. With no window, nobody can answer it, and it will sit there until a time limit stops it.
Reading the exit code
Programs report success or failure through an exit code when they finish. By common convention zero means success and anything else means something went wrong, though some programs use their own numbers. Schedule records the code for every run in the history, alongside what started the run, when it started and ended, how long it took and which attempt it was.
The history can be filtered by job, by status and by text, and a failure brings up a Windows notification, which you can click to open the history. You can also have an email sent through your own mail server when a job fails. Between them, a program that starts failing quietly gets noticed.
When a program job is not the right one
If what you want to run is a PowerShell, batch, PHP or Python script, use a script job instead, which finds the interpreter for you and captures the output and errors. If you only want to show something, such as a folder or a report, the Open a file, folder or website job is simpler. For Macro by Zaweba macros and Backup by Zaweba folder pairs, there are job types of their own.
A program job is for everything else: real programs, with real arguments, that you want to run at the right time and know about afterwards.
Before you save
Write the timetable, in plain English or cron, and check the preview of the next 10 run times. Then use Run now once to make sure the program starts and finishes the way you expect, and look at the history. A job that has run correctly once by hand is far more likely to run correctly at three in the morning.