Skip to main content

Scheduler

Rostyman includes a built-in local job scheduler that runs API requests and collections on a timed schedule — entirely offline, no cloud required. Schedules run locally in the Electron main process and continue to execute even when the app is minimized to the system tray.

Opening the Scheduler​

  • Click the Clock icon in the left sidebar
  • Or use + New Tab → Scheduler

This opens the singleton Scheduler tab.

Job List Table​

Each scheduled job appears as a row in the table. Columns:

ColumnDescription
(expand)Chevron to expand/collapse the job's run history inline
On/OffToggle switch — enable or disable the job without deleting it
NameThe job's display name
TargetType badge (REQUEST / COLLECTION / FOLDER) + target name and method
ScheduleCron expression in a code badge, with a human-readable description below
Last RunRelative time since last execution (e.g. "5m ago", "Never")
StatusColored status pill for the most recent run
ActionsRun Now, Edit (pencil), Delete (trash) buttons

Status Pills​

StatusColorMeaning
SuccessGreenLast run completed without errors
FailedRedLast run returned an error
RunningBlue (spinning)Currently executing
TimeoutAmberLast run exceeded the timeout threshold
Never RunGrayJob created but not yet executed

Creating a Job​

Click New Job (or the + button) to open the job dialog. All fields are required unless noted.

Job Name​

A descriptive label shown in the table and in desktop notifications. Max 100 characters.

Target Type​

Select what to run when the job fires:

TypeDescription
RequestRuns a single saved HTTP request
CollectionRuns all requests in a collection (top-level and all folders)
FolderRuns all requests inside a specific folder
WorkflowRuns a saved workflow — useful for chained multi-step automations on a schedule
Browser TestRuns a saved browser test on a schedule, with full run history

After selecting the type, a tree picker lets you browse and select the target from your workspace.

Environment​

Optional. If the target belongs to a collection that has environments, a dropdown appears letting you select which environment's variables to use during execution. Leave blank to use the collection's currently active environment.

Schedule​

Choose from a preset or enter a custom cron expression.

Presets:

PresetCron ExpressionRuns
Every 1 minute* * * * *Every 60 seconds
Every 5 minutes*/5 * * * *:00, :05, :10, …
Every 15 minutes*/15 * * * *:00, :15, :30, :45
Every 30 minutes*/30 * * * *:00, :30
Every 1 hour0 * * * *Top of each hour
Every 6 hours0 */6 * * *00:00, 06:00, 12:00, 18:00
Every 12 hours0 */12 * * *00:00, 12:00
Every 24 hours / Daily midnight0 0 * * *00:00 daily
Weekly on Sunday0 0 * * 0Sunday 00:00
Custom—Enter any valid 5-field expression

When Custom is selected, a text field appears. A human-readable preview of the expression is shown below the input for verification.

Cron syntax reference:

┌───────── minute     (0–59)
│ ┌─────── hour (0–23)
│ │ ┌───── day of month (1–31)
│ │ │ ┌─── month (1–12)
│ │ │ │ ┌─ day of week (0–7, 0 and 7 = Sunday)
* * * * *

Common examples:

*/5 * * * *       → Every 5 minutes
0 9 * * 1-5 → Weekdays at 9 AM
0 0 1 * * → First day of each month at midnight
30 18 * * 5 → Fridays at 6:30 PM

Timezone​

Enter a timezone name (e.g. UTC, America/New_York, Asia/Kolkata). An autocomplete datalist suggests common timezones. All schedules default to UTC if left blank.

Advanced Options​

FieldDefaultDescription
Max Retries0Number of automatic retries after failure (0–5)
Timeout30000 msMaximum execution time in milliseconds before marking as timed out

Enable Immediately​

A toggle at the bottom of the dialog. When on, the job is enabled as soon as you save it. Turn it off to save the job in a disabled state and enable it later.

Run History​

Click any row (or the expand chevron) to reveal the inline run history table for that job. Up to 20 recent runs are shown.

Run History Columns​

ColumnDescription
StartedFull timestamp of when the run began
DurationExecution time (e.g. "245ms", "2.1s")
StatusSuccess / Failed / Timeout / Running pill
ErrorError message if the run failed, otherwise "—"
(delete)Remove this individual run from the log

A Refresh button reloads the run list. A Clear All button removes all run history for the job (the job itself is preserved).

Actions​

Run Now​

Click the Run button (play icon) in the Actions column to execute the job immediately, regardless of its schedule. The row status updates in real time.

Edit​

Click the pencil icon to open the job dialog pre-filled with the current settings. All fields are editable.

Delete​

Click the trash icon to soft-delete the job to the Trash. Deleted jobs can be recovered from the Trash tab. The job stops executing immediately.

Desktop Notifications​

When a scheduled job completes, Rostyman sends a system desktop notification showing:

  • Job name
  • Result status (Success / Failed)
  • Environment used (if any)

Notifications appear even when Rostyman is minimized to the tray. They can be disabled in Settings → General → Notifications.

How It Works​

The scheduler uses node-cron in the Electron main process. Jobs run locally on your machine — no server or internet connection is needed. The app must be running (even minimized to tray) for scheduled jobs to execute.

If the app is closed when a job was scheduled to fire, that execution is skipped. The job resumes on the next scheduled time after the app restarts.

Tips​

  • Use Every 5 minutes with a health-check request to monitor API uptime
  • Schedule full collection runs nightly with the Daily midnight preset to catch regressions
  • Set Max Retries to 2 or 3 for flaky endpoints that occasionally time out
  • Use the Folder target type to schedule a specific subset of requests from a large collection
  • Expand the run history inline to spot patterns in intermittent failures without leaving the scheduler