Search

Studio

Macro Scheduler for BlueStacks and Other Emulators

Use the MAS scheduler to run a macro on a BlueStacks or other emulator port, once or daily, weekly or monthly, and fix schedules that did not run.

  • Windows
  • Mac
  • Emulator
  • Studio
Beginner Updated 6 min read
On this page
  1. Before you start
  2. How the macro scheduler works with BlueStacks and other emulators
  3. Schedule a macro on an Android emulator
  4. Arguments and settings profiles
  5. Views and today’s panel
  6. Edit, pause, skip and cancel
  7. Where the logs go
  8. Troubleshooting
  9. Schedule did not run
  10. Runs overlap
  11. Scheduler stops when the app closes

The Scheduler page in Macro Automation Studio (MAS) runs a macro on a local emulator such as BlueStacks at a set time, once or on a daily, weekly or monthly rhythm. This page explains how the runner decides when to start, how to create and manage schedules, where the logs go, and what to check when a schedule did not run.

Before you start

  • MAS is installed and you are signed in. MAS must stay open at the scheduled time.
  • The macro is listed under Macros: your own project or a downloaded Marketplace bot.
  • The emulator is running with ADB switched on, and you know its port. A schedule targets a port, not a device name. See Devices.
  • The emulator is in a device group with its arguments or settings profile set. See Device groups and Settings profiles.

How the macro scheduler works with BlueStacks and other emulators

  • A schedule, called a scheduled job in the app, names a macro, an emulator port, a date and time, a repeat count and a recurrence.
  • The runner lives inside the app. It starts when you sign in and checks your schedules every 30 seconds.
  • A schedule starts when its next run time has passed, its port is free, and fewer than 20 scheduled jobs are running. A busy port is checked again 30 seconds later, so the run starts late rather than not at all.
  • Each start runs the macro Repeat Count times, one after another. A failed run stops the sequence.
  • After a completed run, a recurring schedule gets its next run time: daily adds a day, weekly moves to the next ticked weekday, monthly moves to the same day next month (the 31st becomes the last day of a shorter month).
  • A failed run marks the schedule Failed, and a failed schedule does not recur. Fix the cause and create a new schedule.
  • Times are local time on this computer. There is no cron syntax and no time zone field.
  • Everything runs on this computer. There is no server-side scheduling, so a cloud device cannot be a schedule target and nothing runs while MAS is closed.

Schedule a macro on an Android emulator

  1. Open Scheduler and click Create New Schedule.
  2. Enter a Name of at least 3 characters.
  3. Pick the Macro.
  4. Set the Emulator Port: click Scan and choose a port under Available, or type it.
  5. Choose the Date and Time.
  6. Set Repeat Count to 1 or more.
  7. Choose a Recurrence: None, Daily, Weekly or Monthly. For Weekly, tick the Days of Week.
  8. Click Create Schedule.

MAS refuses a schedule that overlaps another schedule on the same port and reports “Time slot is occupied on this port”. The check assumes a run lasts 30 minutes and looks 60 days ahead for recurring schedules.

RecurrenceRuns
NoneOnce, at the date and time you set
DailyEvery day at that time
WeeklyAt that time on each ticked weekday
MonthlyOn the same day of each month

Arguments and settings profiles

A schedule has no argument form of its own. When a run starts, MAS finds the device that owns the port and uses that device’s arguments: its settings profile when it follows one, otherwise the values saved on its card in Device Groups. Change the profile or the card and the next scheduled run picks up the change.

If no device owns the port, the run still starts, but with no arguments, no proxy and no device name in Runs, and webhooks scoped to a device or group do not fire. Add the emulator to a device group before you schedule it.

Marketplace bots are fetched when the run starts, so an updated listing runs at its current version.

Views and today’s panel

The page offers a Grid view, a Table view and a Timeline view. The timeline shows one row per port; drag a block to reschedule it, and MAS refuses a drop onto an occupied slot. Today’s Schedule on the side lists Running Now, Up Next and Completed with a menu for each entry.

Edit, pause, skip and cancel

  • Edit opens the same form. Turn Active off to pause the schedule and on to resume it; the runner skips inactive schedules. Save with Save Changes.
  • Skip Next Run in the today panel, or Cancel on a recurring schedule, moves it to the next occurrence. Cancel on a one-time schedule cancels it.
  • Delete removes the schedule.
  • View History opens Execution History with one row per run: run number, start, end, duration, port and status. View Logs shows the run’s output.

Where the logs go

Each run’s output is saved to a file on this computer, one file per history entry:

SystemFolder
Windows%AppData%\MacroAutomationStudio\scheduler_logs
Mac~/Library/Application Support/MacroAutomationStudio/scheduler_logs

MAS deletes log files older than 30 days. The history itself (status, times and the error message) stays on your account. Scheduled runs also appear on the Runs page like any other run.

Troubleshooting

Schedule did not run

Check these in order:

  1. MAS was closed, signed out or the computer was asleep at the scheduled time. When you open MAS again, a pending schedule whose time passed since the start of the previous day runs right away; older missed runs are skipped.
  2. The schedule is inactive. Open Edit and check Active.
  3. The schedule is Failed. Open View History, read the error message, fix the cause and create a new schedule.
  4. The port was busy. Another run, or another schedule on the same port, was still going. The run starts at the next check once the port is free.
  5. The emulator was not running or listens on another port. The history entry shows the error; see ADB troubleshooting.

Runs overlap

An emulator runs one macro at a time. Two schedules on the same port never run at once: the second waits for the port and starts late. Schedules on different ports run in parallel, up to 20 at a time. Repeat Count runs are sequential, so a repeat of 3 takes three times as long. Use the Timeline view to see how runs line up, and leave room after a run that varies in length.

Scheduler stops when the app closes

The runner is part of the app, so closing MAS, signing out or letting the computer sleep stops every schedule. Keep MAS open and signed in, and switch off sleep in your power settings. After a crash, MAS marks any run that was left running as failed with “System recovered from crash or unexpected shutdown” on the next start; create the schedule again.

Next steps

Related pages

Was this page helpful?

Questions? Ask in Discord