# Manage your schedules

> View, inspect, and delete schedules in the Unity Dashboard, whichever way you created them.

The [Unity Dashboard](https://cloud.unity.com) provides a graphical interface for managing schedules. You can view, inspect, and delete every schedule in an environment from the dashboard, whether you created it in the dashboard, with the [CLI](./cli.md), or through the [REST API](./rest-api.md).

To open the schedules list, select **Triggers** > **Schedules** and choose an [environment](/services/service-environments.md). To create a schedule, refer to [Create a schedule in the Unity Dashboard](./unity-dashboard.md).

> **Note:**
>
> To create and manage schedules in the Unity Dashboard, you need one of the following [roles](/cloud/organizations/members-groups-roles.md#assign-roles):
>
> * **Scheduler Configuration Viewer**: View the schedules list and schedule details (`scheduler.configs.get`, `scheduler.configs.list`). Every create and delete control is disabled for this role.
> * **Scheduler Configuration Editor**: Also create and delete schedules (`scheduler.configs.create`, `scheduler.configs.delete`).

## Preview schedules

The **Status** filter arrives pre-set to **Status: Active**, so the list shows only active schedules and hides expired ones. To see expired schedules, switch the filter to **Expired**, or select both **Active** and **Expired**. The filter drives the request to the service rather than filtering the rows already loaded, so it covers every schedule in the environment.

Schedules appear in a table that shows each schedule's status, name, type, cadence, and firing window. **Type** renders as a chip: **Recurring**, **Interval**, or **One-time**. Select an active schedule's name to open its [details](#schedule-details), or the **bin** icon to [delete](#delete-a-schedule) it. When a schedule's cadence or firing window is too long for its column, hover over the value to see it in full. While the list loads, the table shows skeleton rows in place of the schedules.

Use the filter bar to narrow the list by status, type, fire date, or firing window, or to search by schedule or event name. The **Schedule** date filter applies only to one-time schedules; recurring and interval schedules always match.

The filter bar and the table always render, and the table body carries the empty states:

* When the environment has no schedules, a **No schedules yet** card with a **Create your first schedule** button appears inside the table.
* When a search or filter matches none of the existing schedules, the table shows **No schedules found**.

> **Note:**
>
> Expired schedules don't have a details page, so their names render as plain text instead of links. You can filter for expired schedules, read their values in the list, and delete them, but you can't open them.

## Schedule details

Select an active schedule's name to open its details page. The page has three cards, **Details**, **Schedule definition**, and **Upcoming fires**, and each card header has a button to collapse or expand it.

The **Details** card shows the following information:

| Data                | Description                                                                                                                                      |
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Name**            | The name of the schedule.                                                                                                                        |
| **Event name**      | The identifier that composes the event type triggers listen for.                                                                                 |
| **Event type**      | The full event type that a trigger must match to consume the schedule, for example `com.unity.services.scheduler.<eventName>.v<payloadVersion>`. |
| **Type**            | **Recurring**, **Interval**, or **One-time**.                                                                                                    |
| **Payload version** | The automatically assigned version of the payload. For more information, refer to [Payload versioning](./unity-dashboard.md#payload-versioning). |
| **Payload**         | The JSON payload sent with the event, or **None** when the payload is empty.                                                                     |
| **Status**          | An **Active** or **Expired** chip. A schedule reads as **Expired** once its end date, or a one-time fire date, passes.                           |

The **Schedule definition** card describes the schedule in plain language: its cadence (for example, **fires every hour**), its firing window if one is set, and the triggers that consume it. Each trigger links to its own details page, and the row is omitted when no trigger uses the schedule. Hover over a firing-window date to see the same moment in your local time, as **Your local time: {date}**.

To debug execution, select **View Schedule Logs** to open the [Logs](/triggers/manage-events/debug-events.md) page filtered to this schedule. To remove the schedule, select **Delete schedule**.

### Upcoming fires

The **Upcoming fires** card lists the next five moments the schedule fires. The following table describes its columns:

| Column              | Description                                                           |
| ------------------- | --------------------------------------------------------------------- |
| **Fires at (UTC)**  | The moment the schedule fires, in UTC.                                |
| **Your local time** | The same moment in your local time.                                   |
| **When**            | How far away the fire is, relative to now, for example **in 3 days**. |

A one-time schedule lists its single future fire. A schedule that's past its end date shows **No upcoming fires**.

## Delete a schedule

> **Warning:**
>
> Deleting a schedule can't be undone. Triggers that consume the schedule's event type stop firing once you delete it.

To delete a schedule, follow these steps:

1. Select the **bin** icon in the schedule's row, or open the schedule's [details page](#schedule-details) and select **Delete schedule**.
2. In the confirmation dialog, review how many triggers consume the schedule. If any triggers use it, a warning shows how many stop firing.
3. Select **Delete** to confirm.

## Delete expired schedules

An expired schedule never fires again, but it stays in the list until you delete it. Use **Delete expired** to clear all of them at once instead of deleting each row.

> **Warning:**
>
> Deleting expired schedules can't be undone. A trigger that listens for a deleted schedule's event never fires, and the Triggers list marks it with a warning icon. Refer to [Preview triggers](/triggers/tutorials/define-triggers/unity-dashboard.md#preview-triggers).

To delete every expired schedule in the environment, follow these steps:

1. In the schedules list, select **Delete expired**, between **Documentation** and **New schedule**. Without delete access, the button is disabled.
2. In the **Delete expired schedules?** dialog, review how many schedules the action removes, stated as **This deletes N expired schedules. This action cannot be undone.**
3. Select **Delete** to confirm. Every expired row disappears at once, and a message confirms how many schedules were deleted.

If the environment has no expired schedules, the Dashboard doesn't open the dialog. Instead, it shows the message **There are no expired schedules to delete.**

## Additional resources

* [Create a schedule in the Unity Dashboard](./unity-dashboard.md)
* [Schedule events with the CLI](./cli.md)
* [Schedule events with the REST API](./rest-api.md)
* [Debug and monitor events](/triggers/manage-events/debug-events.md)
* [Timers in Stateful Cloud Code](/cloud-code/stateful-cloud-code/timers.md)
