ZevCloud
Dashboard

Features

Scheduled Tasks

Run a command on a timer inside your application's own container, such as clearing a cache, sending a digest or a nightly cleanup.

A scheduled task runs a command on a timer inside your application’s own container. It sees the same code, files and environment variables as your running app, so anything you can run from the app’s terminal can run on a schedule.

Typical uses:

  • Clearing or warming a cache
  • Sending a daily or weekly digest email
  • Nightly cleanup, such as deleting expired sessions or old uploads

Scheduled tasks are available for applications. Team owners and admins can create, edit and run them.

Creating a task

Each task has:

FieldWhat it isExample
NameA label you’ll recognise in the run historyNightly cleanup
CommandWhat to run inside your app’s containernpm run cleanup
FrequencyWhen to run it (see below)daily or 0 3 * * *
TimeoutHow long a run may take before it’s stopped, from 10 to 3600 seconds300 (the default)
EnabledTurn a task off without deleting iton

Each service can have a limited number of tasks. If you reach the limit, remove one you no longer need to add another.

Frequency

Use one of the presets, or a standard 5-field cron expression:

FrequencyRuns
hourlyAt the start of every hour
dailyOnce a day at midnight
weeklyOnce a week
monthlyOnce a month
0 3 * * *Every day at 03:00
*/15 * * * *Every 15 minutes
0 9 * * 1Every Monday at 09:00

The five fields are minute, hour, day of month, month and day of week.

Runs and output

Every task keeps its recent runs, each with its status and the command’s output. Check the output after a task’s first scheduled run to confirm it did what you expected.

To test a task without waiting for the schedule, run it now. That runs the command once, straight away, and the run appears in the history like any other.

API

Owners and admins can manage tasks through the API.

GET /v1/services/:serviceId/scheduled-tasks
POST /v1/services/:serviceId/scheduled-tasks
{
  "name": "Nightly cleanup",
  "command": "npm run cleanup",
  "frequency": "0 3 * * *",
  "timeout": 300,
  "enabled": true
}

timeout and enabled are optional. timeout defaults to 300 seconds.

PATCH /v1/services/:serviceId/scheduled-tasks/:taskId

Send only the fields you want to change.

DELETE /v1/services/:serviceId/scheduled-tasks/:taskId
POST /v1/services/:serviceId/scheduled-tasks/:taskId/run

Runs the task once, now.

GET /v1/services/:serviceId/scheduled-tasks/:taskId/runs

Recent runs with their status and output.

Updated at, Monday, October 26, 2026