Unity Gaming Services CLI

You can use the Unity Gaming Services CLI to interact with schedules. The CLI allows you to manage schedule configurations from the command line.

Prerequisites

For more comprehensive information on the CLI, follow the steps in the Unity Gaming Services CLI Get Started guide.

To follow this guide, you first need to complete the following actions:

  1. Install the UGS CLI.

  2. Use the following to configure your Project ID and Environment:
    ugs config set project-id <your-project-id>
    ugs config set environment-name <your-environment-name>

  3. Configure a service account with the required roles for Scheduler and environments management. For more information, refer to Get Authenticated.

Using the CLI

For a full reference of all commands and options, refer to the Schedules Command Line documentation.

Note: The ugs scheduler command is also available as ugs sched.

Deploy schedules

Run the new-file command to create a schedule configuration locally:

ugs scheduler new-file <file-name>

The configuration file contents can look like the following:

{
  "$schema": "https://ugs-config-schemas.unity3d.com/v1/schedules.schema.json",
  "Configs": {
    "Schedule1": {
      "EventName": "EventType1",
      "Type": "recurring",
      "Schedule": "0 * * * *",
      "PayloadVersion": 1,
      "Payload": "{}"
    },
    "Schedule2": {
      "EventName": "EventType2",
      "Type": "one-time",
      "Schedule": "2024-03-08T13:06:32.311+00:00",
      "PayloadVersion": 1,
      "Payload": "{ \"message\": \"Hello, world!\"}"
    }
  }
}

You can also separate the schedule configurations into multiple files if you need to.

{
  "$schema": "https://ugs-config-schemas.unity3d.com/v1/schedules.schema.json",
  "Configs": {
    "Schedule1": {
      "EventName": "EventType1",
      "Type": "recurring",
      "Schedule": "0 * * * *",
      "PayloadVersion": 1,
      "Payload": "{}"
    }
  }
}
{
  "$schema": "https://ugs-config-schemas.unity3d.com/v1/schedules.schema.json",
  "Configs": {
    "Schedule2": {
      "EventName": "EventType2",
      "Type": "one-time",
      "Schedule": "2024-03-08T13:06:32.311+00:00",
      "PayloadVersion": 1,
      "Payload": "{ \"message\": \"Hello, world!\"}"
    }
  }
}

You can use the Deploy command to promote your local schedule configuration files to the remote environment.

You need to deploy the configuration files for them to become active schedules.

ugs deploy <path-to-schedules-file> <path-to-schedules-file>
ugs deploy <path-to-directory>

Retrieve schedules

To list all currently active schedules, run the following command:

ugs scheduler list

You can use the Fetch command to retrieve multiple schedules from remote at once.

The provided path is the directory that schedules are saved to:

ugs fetch <path>

Delete schedules

You can delete a schedule by running the deploy command with a --reconcile flag.

Warning: Reconcile is a destructive operation. It deletes all schedules that are not present in the provided path. You can check the output of the command with the --dry-run flag before running the command without it.

ugs deploy --services scheduler <path-to-config-file> --reconcile