TinyTask Schedule Tasks: Run Macros Automatically at Set Times
TinyTask does not have a built-in scheduler. There is no menu option to say “run this macro at 9 AM every morning.” But you can get the exact same result by combining TinyTask’s compile-to-EXE feature with Windows Task Scheduler. The compiled macro runs as a standalone program, and Task Scheduler launches it on whatever timetable you set.
This guide walks through the full setup: compiling your macro, creating a scheduled task, handling common problems, and building more advanced scheduling setups for real-world automation.
Why Schedule TinyTask Macros?
Scheduling turns TinyTask from a manual tool into hands-free automation. Instead of opening TinyTask and pressing Play every time, the macro runs itself at the times you choose. Some practical reasons to schedule macros:
Morning Prep
Open apps, log into systems, and arrange windows before you sit down at your desk.
Data Collection
Pull reports from a web portal every day at the same time without manual clicks.
Cleanup Routines
Clear temp files, empty downloads folder, or organize screenshots on a daily schedule.
Repetitive Admin
Submit timesheets, check dashboards, or run status updates at the end of each workday.
Prerequisites
Before you can schedule a TinyTask macro, you need three things:
- A working TinyTask recording — test it manually first. Play it at least three times to confirm it runs correctly every time.
- TinyTask v1.77 — the compile-to-EXE feature is available in this version. Download the latest version here.
- Windows Task Scheduler — included in every version of Windows from XP to 11. No installation needed.
Step 1: Compile Your Macro to EXE
Windows Task Scheduler launches programs. TinyTask’s .rec files are not programs. You need to compile the recording into a standalone .exe file that Task Scheduler can execute directly.
Open Your Recording
Launch TinyTask and click the Open button (folder icon). Select your .rec file. If you just recorded the macro, it is already loaded.
Click Compile
Click the Compile button on the toolbar (the package/export icon). A “Save As” dialog appears.
Save the EXE
Choose a permanent location for the EXE file. Avoid the Desktop or Downloads folder, which you might accidentally clean up. A dedicated folder like C:\Macros\ works well. Name the file something descriptive: morning-setup.exe, daily-report.exe.
Test the EXE
Double-click the compiled EXE to verify it runs correctly. It should perform the exact same actions as the original recording. The EXE is self-contained (typically 50-70 KB) and does not require TinyTask to be installed.
Step 2: Set Up Windows Task Scheduler
Windows Task Scheduler is a built-in tool that runs programs on a schedule. Here is how to create a task for your compiled TinyTask macro.
Open Task Scheduler
Press Win and type Task Scheduler. Click the result to open it. Alternatively, press Win+R, type taskschd.msc, and press Enter.
Create a Basic Task
In the right panel, click “Create Basic Task…”. This opens a step-by-step wizard. Enter a name (e.g., “Morning Setup Macro”) and an optional description. Click Next.
Set the Trigger
Choose when the task should run: Daily, Weekly, Monthly, One time, When the computer starts, When I log on, or When a specific event is logged. For most macros, “Daily” at a specific time works best. Set the start time and recurrence pattern. Click Next.
Set the Action
Select “Start a program”. Click Next. Click Browse and navigate to your compiled EXE file (e.g., C:\Macros\morning-setup.exe). Click Next.
Review and Finish
Check the “Open the Properties dialog” checkbox before clicking Finish. This lets you configure additional settings right away.
Configure Properties
In the Properties dialog:
• General tab: Check “Run with highest privileges” if the macro targets apps that need admin access.
• Conditions tab: Uncheck “Start the task only if the computer is on AC power” if you use a laptop.
• Settings tab: Check “Allow task to be run on demand” so you can test it manually.
Trigger Types and Scheduling Options
Task Scheduler supports multiple trigger types. Here is when each one makes sense for TinyTask macros.
| Trigger | When It Fires | Best For |
|---|---|---|
| Daily | Same time every day (or every N days) | Morning setup routines, daily reports, end-of-day cleanup |
| Weekly | Specific days of the week at a set time | Weekly timesheets, Monday status checks, Friday backups |
| Monthly | Specific day of month or last day of month | Monthly reports, invoice generation, license renewals |
| At log on | When you sign into Windows | Opening apps and arranging windows after login |
| At startup | When Windows boots (before login) | Not useful for TinyTask. Screen is locked, macro cannot interact with UI. |
| On idle | When PC has been idle for a set duration | Cleanup tasks during lunch breaks or after hours |
| On event | When a specific Windows event is logged | Advanced use. Trigger macro when a USB drive connects or a specific error occurs. |
You can add multiple triggers to a single task. For example, run the same macro at 9:00 AM and 2:00 PM by adding two daily triggers with different start times.
Advanced Task Scheduler Settings
Repeat a Task Within a Day
If you need the macro to run every hour or every 30 minutes, use the trigger’s repeat option:
- Open the task’s Properties and go to the Triggers tab
- Select the trigger and click Edit
- Check “Repeat task every” and set the interval (e.g., 1 hour)
- Set “for a duration of” to how long it should keep repeating (e.g., 8 hours for a full workday)
This creates a schedule like “run every hour from 9 AM to 5 PM daily.”
Add a Startup Delay
If your macro needs apps to be fully loaded before it runs, add a delay:
- In the trigger’s Edit dialog, check “Delay task for”
- Set a delay like 30 seconds or 1 minute
This gives programs time to finish loading after login before TinyTask clicks on them.
Stop If Running Too Long
In the Settings tab, check “Stop the task if it runs longer than” and set a duration like 5 minutes. This prevents a stuck macro from running indefinitely if something goes wrong.
Using Batch Scripts for Complex Schedules
For more control than Task Scheduler alone provides, wrap your TinyTask EXE in a batch script. This lets you add delays, chain multiple macros, check conditions, and log results.
Basic Batch Wrapper
Create a file called run-macro.bat:
@echo off
echo Starting macro at %date% %time% >> C:\Macros\log.txt
timeout /t 5 /nobreak > nul
start /wait C:\Macros\morning-setup.exe
echo Finished at %date% %time% >> C:\Macros\log.txtThis waits 5 seconds (for apps to load), runs the macro, and logs the start and finish times.
Chain Multiple Macros
@echo off
echo Running macro chain at %date% %time% >> C:\Macros\log.txt
REM Open apps first
start /wait C:\Macros\open-apps.exe
timeout /t 10 /nobreak > nul
REM Then fill in the daily form
start /wait C:\Macros\daily-form.exe
timeout /t 3 /nobreak > nul
REM Finally submit
start /wait C:\Macros\submit-form.exe
echo Chain complete at %date% %time% >> C:\Macros\log.txtThe timeout commands add pauses between macros so each app has time to respond before the next macro starts clicking.
Conditional Execution
@echo off
REM Only run on weekdays
for /f "tokens=1" %%d in ('wmic path win32_localtime get dayofweek /value ^| find "="') do set %%d
if %dayofweek% GEQ 6 goto :eof
REM Only run if target app is already open
tasklist /fi "imagename eq outlook.exe" | find /i "outlook.exe" > nul
if errorlevel 1 (
echo Outlook not running, skipping macro >> C:\Macros\log.txt
goto :eof
)
start /wait C:\Macros\send-report.exeThis checks the day of the week and whether Outlook is running before executing the macro. Point Task Scheduler at the .bat file instead of the EXE directly.
Real-World Scheduling Examples
Morning Workspace Setup
Trigger: At log on, delay 30 seconds
Macro: Opens Outlook, Chrome (company dashboard), Slack, and arranges windows to preset positions
Result: Everything is ready by the time you grab coffee
Daily Sales Report
Trigger: Daily at 8:30 AM
Macro: Opens CRM, navigates to Reports, selects yesterday’s date, clicks Export, saves CSV to shared drive
Result: Report is waiting in the shared folder when the team arrives
Hourly Screenshot Monitor
Trigger: Daily, repeat every 1 hour for 10 hours
Macro: Takes a screenshot of a dashboard using Win+Shift+S and pastes into a document
Result: Visual log of system status throughout the workday
Weekly Timesheet Submission
Trigger: Every Friday at 4:45 PM
Macro: Opens timesheet portal, fills in standard hours, clicks Submit
Result: Timesheet submitted before the deadline every week
End-of-Day Cleanup
Trigger: Daily at 5:30 PM
Macro: Closes all browser tabs, empties Downloads folder (moves files to archive), clears temp folder
Result: Clean workspace ready for tomorrow
Monthly License Check
Trigger: First Monday of each month at 10 AM
Macro: Opens license management portal, screenshots the status page, saves to a dated folder
Result: Monthly compliance documentation without manual effort
Troubleshooting Scheduled Macros
| Problem | Cause | Fix |
|---|---|---|
| Macro runs but clicks wrong spots | Screen resolution or DPI scaling changed since recording | Record the macro at the same resolution and scaling (100%) that will be active when the schedule triggers. Check Display Settings. |
| Task runs but nothing visible happens | Task is set to “Run whether user is logged on or not” | Change to “Run only when user is logged on.” TinyTask needs an active desktop session to send mouse/keyboard events. |
| Macro clicks on lock screen | PC went to sleep or locked before the trigger time | Disable sleep/screen lock during macro hours. Power Settings > set “Turn off screen” to Never, or use a keep-alive utility. |
| Task shows “Last Run: 0x1” | The EXE file path has spaces and is not quoted | In the Action settings, make sure the path is in quotes: "C:\My Macros\daily.exe" |
| Macro starts too fast after login | Apps have not finished loading yet | Add a startup delay (30-60 seconds) in the trigger settings. Or use a batch wrapper with timeout. |
| Task does not run on battery power | “Start only if on AC power” is checked (default for laptops) | Uncheck this option in the Conditions tab of the task properties. |
| Macro works manually but not when scheduled | Different window positions or app states at scheduled time | Record the macro starting from a consistent state (e.g., start by pressing Win+D to show desktop first). Use batch script to open required apps before the macro runs. |
| Multiple macros conflict | Two scheduled macros overlap in time | Stagger schedules by at least 5 minutes. Or chain them in a batch script with delays between each. |
Related Articles
Frequently Asked Questions
Does TinyTask have a built-in scheduler?
No. TinyTask does not include any scheduling feature. It can record, play, loop, and compile macros, but it has no option to run a macro at a specific time. To schedule macros, you need to compile the recording to an EXE file and then use Windows Task Scheduler to launch the EXE at your desired time.
This two-step approach actually gives you more scheduling flexibility than a built-in scheduler would. Windows Task Scheduler supports daily, weekly, monthly, at-login, on-idle, and event-based triggers, along with options for repeating intervals, delays, and conditions.
Can I schedule a .rec file directly without compiling?
Not directly. A .rec file is a data file, not an executable program. Task Scheduler needs a program to launch. However, you can work around this by scheduling TinyTask itself with the .rec file as a parameter. Create a batch script that opens TinyTask, loads the .rec file, and sends the Play hotkey using a tool like AutoHotkey.
This workaround is more fragile than compiling to EXE. The compiled approach is recommended because the EXE is self-contained, starts instantly, and does not depend on TinyTask being installed or configured correctly.
Will the scheduled macro work if my computer is locked?
No. TinyTask macros send mouse clicks and keyboard events to the active desktop. When Windows is locked, there is no active desktop to receive these events. The macro will either fail silently or click on lock screen elements, which is not what you want.
To prevent this, configure your power settings to never lock the screen during scheduled macro hours. Go to Settings > System > Power > Screen timeout and set it to Never. If security is a concern, set the screen to lock after the macro’s expected completion time. Alternatively, use a keep-alive tool that prevents Windows from locking.
How do I make a scheduled macro repeat every hour?
In Task Scheduler, edit the trigger for your task. Check the box “Repeat task every” and set the interval to 1 hour. Then set “for a duration of” to the total period you want it active (e.g., 8 hours for a workday, or “Indefinitely” to repeat all day). The macro will run once per hour at the same minute offset from the initial trigger time.
Make sure each run of the macro finishes before the next one starts. If your macro takes 2 minutes to complete, an hourly schedule has no issues. But if it takes 45 minutes, you need at least a 1-hour gap. Set “Stop the task if it runs longer than” in the Settings tab as a safety measure.
Can I chain multiple TinyTask macros in sequence?
Yes. Create a batch script (.bat file) that runs multiple compiled EXE files in order with start /wait commands and timeout delays between them. Point Task Scheduler at the batch file instead of an individual EXE.
The start /wait command tells Windows to wait until the current EXE finishes before moving to the next line. The timeout command adds a pause in seconds to let apps respond between macro steps. This is the most reliable way to run complex multi-step automation sequences on a schedule.
Why does my scheduled macro click in the wrong place?
TinyTask records absolute pixel coordinates. If anything about your screen setup changes between recording and playback, the clicks will land in the wrong position. Common causes include: display resolution changed, DPI scaling changed (100% vs 125% vs 150%), monitor arrangement changed in a multi-monitor setup, or the target application window is at a different position or size.
Fix this by recording the macro at the exact same resolution, scaling, and window arrangement that will be active when the schedule triggers. If your macro starts by pressing Win+D (show desktop) and then opens the target app fresh, it will be more consistent than assuming the app is already in the right position.
Can I run a scheduled macro on a virtual machine?
Yes. A virtual machine provides a consistent, isolated environment where resolution and window positions never change unexpectedly. This makes scheduled macros more reliable than running them on a physical machine where settings may drift over time.
Set up the VM at a fixed resolution (e.g., 1920×1080), disable screen lock and screensaver inside the VM, install the required apps, and record your macro there. Task Scheduler inside the VM can then run the compiled EXE on schedule. The VM does not need to be in fullscreen mode on the host, but it must have an active session.
How do I stop a scheduled macro that is misbehaving?
If a scheduled macro is running and clicking in the wrong places, press Ctrl+Alt+Delete to interrupt it. This opens the Windows security screen, which takes focus away from the macro. Then open Task Manager and end the macro’s EXE process. To prevent the macro from running again, open Task Scheduler, find the task, right-click it, and select Disable.
As a preventive measure, always set “Stop the task if it runs longer than” to a reasonable duration in the task’s Settings tab. For a macro that should take 1 minute, set the limit to 5 minutes. This automatically kills the process if something goes wrong.
Does Task Scheduler work the same on Windows 10 and 11?
Yes. Task Scheduler works identically on Windows 10 and Windows 11. The interface, features, and configuration options are the same. The steps in this guide apply to both versions. Task Scheduler has also been available since Windows XP, though older versions have fewer trigger options and less granular settings.
One minor difference: Windows 11 sometimes moves the Task Scheduler entry in the Start Menu search results. If you cannot find it by searching, press Win+R, type taskschd.msc, and press Enter. This direct command works on all Windows versions.
Is there a better alternative than Task Scheduler for scheduling macros?
For most users, Windows Task Scheduler combined with TinyTask compiled EXEs is the simplest and most reliable approach. It requires no additional software and integrates directly with Windows. However, if you need more advanced features, there are alternatives.
Power Automate Desktop (free from Microsoft) can trigger flows on schedules and includes built-in UI automation that does not rely on pixel coordinates. AutoHotkey scripts can be scheduled via Task Scheduler with more flexibility than TinyTask EXEs, including the ability to find windows by title rather than position. For enterprise-level scheduling, tools like UiPath or Automation Anywhere provide robust scheduling, error handling, and logging, but they are significantly more complex to set up.
Download TinyTask and Start Automating
Record your macro, compile it to an EXE, and schedule it with Windows Task Scheduler.
Download TinyTask