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 TabScheduler

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

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
CustomEnter 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 SettingsGeneral → 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