Skip to main content

Overview

Schedules allow you to automate repetitive tasks on your game server using cron expressions. Create scheduled backups, automated restarts, timed announcements, and complex task chains that execute in sequence.

Accessing Schedules

Navigate to your server’s schedule management:
/server/{server-identifier}/schedules
The schedules page displays all configured schedules with their status, next run time, and associated tasks.

Creating a Schedule

1

Click New Schedule

Click the New Schedule button in the top-right corner.
2

Configure Schedule

Fill in the schedule details:
  • Schedule Name: Descriptive name (e.g., “Daily Restart”)
  • Cron Expression: When to run (see Cron Timing below)
  • Enabled: Whether the schedule is active
3

Set Timing

Use the cron fields or quick presets to define when the schedule runs.
4

Create Schedule

Click Create to save the schedule. You can then add tasks to it.
API endpoint:
POST /api/client/servers/{server}/schedules
{
  "name": "Daily Restart",
  "cron": {
    "minute": "0",
    "hour": "4",
    "day_of_month": "*",
    "month": "*",
    "day_of_week": "*"
  },
  "is_active": true
}

Cron Timing

Schedules use standard cron syntax with 5 fields:
Minute Hour DayOfMonth Month DayOfWeek

Cron Fields

0-59: Minute of the hourExamples:
  • 0 = Top of the hour
  • 30 = Half past the hour
  • */5 = Every 5 minutes
  • * = Every minute

Quick Presets

Use the preset buttons for common schedules:

Every Minute

* * * * *

Every 5 Minutes

*/5 * * * *

Every Hour

0 * * * *

Daily at Midnight

0 0 * * *

Weekly on Sunday

0 0 * * 0

Example Cron Expressions

  • 0 4 * * * = Daily at 4:00 AM
  • 0 */6 * * * = Every 6 hours
  • 30 2 * * 0 = Every Sunday at 2:30 AM
  • 0 0 1 * * = First day of every month at midnight
  • */30 * * * * = Every 30 minutes
  • 0 6 * * 1-5 = Weekdays at 6:00 AM

Schedule Tasks

Each schedule can have multiple tasks that execute in sequence. Tasks run in order based on their sequence ID with optional time offsets.

Task Types

Schedules support three types of tasks:
Execute a console command:
  • Action: command
  • Payload: The command to run (e.g., say Server restarting in 5 minutes)
  • Example use: Announcements, world saves, custom commands

Adding Tasks

1

Open Task Manager

Click Manage Tasks on a schedule to open the task management modal.
2

Choose Action Type

Select Command, Power, or Backup from the action buttons.
3

Configure Task

Fill in the task details:
  • Payload: Command text, power action, or backup name
  • Time Offset: Seconds to wait before executing (0-3600)
  • Continue on Failure: Whether to continue if this task fails
4

Add Task

Click Add Task to add it to the schedule.
API endpoint:
POST /api/client/servers/{server}/schedules/{schedule}/tasks
Command Task
{
  "action": "command",
  "payload": "say Server will restart in 5 minutes!",
  "time_offset": 0,
  "continue_on_failure": false
}
Power Task
{
  "action": "power",
  "payload": "restart",
  "time_offset": 300,
  "continue_on_failure": true
}
Backup Task
{
  "action": "backup",
  "payload": "scheduled-backup",
  "time_offset": 0,
  "continue_on_failure": false
}

Task Execution Order

Tasks execute sequentially in order of their Sequence ID:
  1. Sequence ID #1 executes at schedule trigger time
  2. Wait for Task #1’s time offset
  3. Execute Task #1
  4. If continue_on_failure is false and task fails, stop here
  5. Wait for Task #2’s time offset
  6. Execute Task #2
  7. Continue until all tasks complete

Time Offsets

Time offsets delay task execution:
  • 0 seconds: Execute immediately
  • 60 seconds: Wait 1 minute before executing
  • 300 seconds: Wait 5 minutes
  • 3600 seconds: Wait 1 hour (maximum)
Example sequence:
Task #1: Command "say Restart in 5 minutes" | Offset: 0s
Task #2: Command "say Restart in 1 minute" | Offset: 240s
Task #3: Power "restart" | Offset: 60s
This announces 5 minutes before restart, then 1 minute before, then restarts.

Example Schedules

Daily Restart with Warnings

1

Create Schedule

  • Name: Daily Restart
  • Cron: 0 4 * * * (4 AM daily)
2

Add Tasks

  1. Command: say Server restarting in 5 minutes for maintenance (offset: 0s)
  2. Command: say Server restarting in 1 minute! Save your progress! (offset: 240s)
  3. Power: restart (offset: 60s)

Hourly Backups

1

Create Schedule

  • Name: Hourly Backup
  • Cron: 0 * * * * (Every hour)
2

Add Task

  1. Backup: hourly-backup-{timestamp} (offset: 0s)

Weekly Maintenance

1

Create Schedule

  • Name: Weekly Maintenance
  • Cron: 0 3 * * 0 (Sundays at 3 AM)
2

Add Tasks

  1. Command: save-all (offset: 0s)
  2. Backup: weekly-maintenance (offset: 30s)
  3. Command: say Server will be down for 10 minutes for maintenance (offset: 30s)
  4. Power: stop (offset: 60s)
  5. Power: start (offset: 600s) — continues on failure

Managing Schedules

Edit Schedule

  1. Click the Edit button on a schedule
  2. Modify the name, cron expression, or enabled status
  3. Click Save
API: POST /api/client/servers/{server}/schedules/{schedule}

Force Run

Manually trigger a schedule:
  1. Click the Force Run button
  2. All tasks execute immediately regardless of cron timing
  3. Useful for testing schedules
API: POST /api/client/servers/{server}/schedules/{schedule}/run

Delete Schedule

Deleting a schedule permanently removes it and all associated tasks. This cannot be undone.
  1. Click the Delete button
  2. Confirm deletion in the modal
  3. Schedule and all tasks are removed
API: DELETE /api/client/servers/{server}/schedules/{schedule}

Schedule Status

Schedules display their current status:

Enabled

Schedule is active and will run at the next scheduled time.

Paused

Schedule is disabled and will not run until re-enabled.

Schedule Information

Each schedule shows:
  • Cron Expression: The timing pattern
  • Task Count: Number of configured tasks
  • Next Run: When the schedule will next execute
  • Last Run: When the schedule last executed

Task Management

Editing Tasks

Tasks cannot be edited directly. To modify a task:
  1. Delete the existing task
  2. Create a new task with updated settings

Deleting Tasks

  1. Open Manage Tasks for the schedule
  2. Click the trash icon next to a task
  3. Confirm deletion
  4. Task is removed from the sequence
API: DELETE /api/client/servers/{server}/schedules/{schedule}/tasks/{task}

Reordering Tasks

Tasks execute in sequence order (Sequence ID). To reorder:
  1. Delete tasks you want to reorder
  2. Re-create them in the desired order
  3. Tasks are automatically assigned sequential IDs

Permissions

Schedule management requires:
  • View schedules: server.schedule.read
  • Create schedules: server.schedule.create
  • Edit schedules: server.schedule.update
  • Delete schedules: server.schedule.delete
  • Manage tasks: server.schedule.update
Server owners and admins have all permissions by default.

Best Practices

Test First

Use Force Run to test schedules before relying on them for important tasks.

Add Warnings

For restart schedules, announce ahead of time so players can prepare.

Use Continue on Failure

Enable for power actions so later tasks still execute if one fails.

Stagger Backups

Don’t schedule all servers’ backups at the same time to avoid performance issues.

Troubleshooting

  • Check that the schedule is Enabled (not paused)
  • Verify the cron expression is correct
  • Ensure the schedule has at least one task
  • Check server logs for execution errors
  • Tasks run by sequence ID, which is assigned in creation order
  • Delete and recreate tasks in the correct order if needed
  • Verify the command syntax is correct for your game
  • Check server console for command output/errors
  • Ensure the server is running when the command executes

API Reference

List Schedules

GET /api/client/servers/{server}/schedules
{
  "data": [
    {
      "id": "schedule-uuid",
      "name": "Daily Restart",
      "cron": "0 4 * * *",
      "is_active": true,
      "is_processing": false,
      "only_when_online": false,
      "last_run_at": "2024-01-15T04:00:00Z",
      "next_run_at": "2024-01-16T04:00:00Z",
      "created_at": "2024-01-10T12:00:00Z",
      "updated_at": "2024-01-10T12:00:00Z",
      "tasks": [
        {
          "id": "task-uuid",
          "sequence_id": 1,
          "action": "command",
          "payload": "say Restarting soon",
          "time_offset": 0,
          "continue_on_failure": false,
          "is_queued": false
        }
      ]
    }
  ]
}

Next Steps

Backups

Learn about manual and automated server backups

Server Console

Monitor schedule execution in the real-time console

Build docs developers (and LLMs) love