Skip to main content

Resource Schedules

Resource Schedules stop platform resources at a set time and start them again later, to reduce costs during off-hours. A schedule controls apps, add-ons, workspaces, and self-hosted models, and is scoped to the entire platform, the resources of one user, or a resource group. Platform administrators manage schedules under Admin > FinOps > Schedules, and through STAN and the REST API.

Schedule Structure​

Each schedule consists of the following components:

Scope​

Schedules are scoped to one of three levels:

Scope LevelResources it stops and starts
Platform (Global)Every app, add-on, workspace, and self-hosted model on the platform
UserEvery app, add-on, workspace, and self-hosted model the selected user owns
Resource GroupThe group's apps, add-ons, workspaces, and self-hosted models. Its other members (workflows, projects, volumes, fine-tuning jobs, ML models, and AutoML jobs) are not stopped or started

A schedule reads its scope each time it runs, so resources added to the group, or created by the user, are included from the next run.

Schedule Configuration​

SettingDescription
TimezoneEastern Time, Central Time, Mountain Time, Pacific Time, or UTC. Stop and start times are in this timezone
Stop TimeWhen resources stop (default 18:00)
Start TimeWhen resources start (default 08:00)
Days of WeekThe days the schedule acts on, Mon to Sun (default Monday to Friday). The stop and the start both happen on each selected day

In the REST API, days are numbered 1 = Monday to 7 = Sunday.

Because only the selected days count, a schedule set to Monday to Friday stops resources at the stop time on Friday and does not start them again until the start time on Monday.

Schedule Status​

StatusDescription
ActiveThe schedule stops and starts resources at its times
PausedThe schedule does nothing at its times until it is resumed. Its settings are kept

What happens at the stop and start times​

Schedules are checked every minute.

  • Stop: apps, add-ons, and self-hosted models in scope are scaled to zero, and workspaces are stopped the same way their owner would stop them.
  • Start: every resource in scope is started again, whether or not the schedule stopped it. Apps, add-ons, and self-hosted models come back with one replica, and workspaces restart with their current settings. A workspace start goes through the same checks as its owner starting it, so it can be refused, for example by a budget that is pausing the owner's workloads.

A resource that was never deployed has nothing to stop or start, so it counts as a failure in that run.

Creating a Schedule​

  1. Open Admin > FinOps > Schedules
  2. Click Create Schedule
  3. Configure the schedule:

Basic Information:

  • Name -- Descriptive name (e.g., "Dev Environment Weeknight Shutdown")
  • Description -- Optional description of the schedule's purpose

Scope Level:

  • Platform (Global) -- Applies to every app, add-on, workspace, and self-hosted model
  • User -- Select a specific user from the dropdown
  • Resource Group -- Select an active resource group from the dropdown

Schedule:

  • Timezone -- Select the timezone for stop/start times
  • Stop Time -- When to stop resources (e.g., 7:00 PM)
  • Start Time -- When to start resources (e.g., 8:00 AM)
  • Days of Week -- Select which days the schedule applies to

Enable schedule immediately -- On (the default), the schedule is saved Active. Off, it is saved Paused.

  1. Click Create schedule. The schedule's page opens.

Managing Schedules​

The Schedules page​

The cards at the top show Total Schedules, Active, Paused, and Next Action (the soonest upcoming stop or start across active schedules).

Filter the list by searching on schedule name or description, by scope (All, Platform, User, Resource Group), and by status.

The table shows each schedule's Name, Scope, Schedule (stop and start times and days), Next Stop, Next Start, and Status, with these actions:

ActionWhat it does
DetailsOpens the schedule's page
Execute Stop NowStops the schedule's resources now
Execute Start NowStarts the schedule's resources now
Pause / ResumePauses an active schedule, or resumes a paused one
View HistoryShows the schedule's execution history
DeleteDeletes the schedule after you confirm

Editing a schedule​

Click a schedule's name (or Details) to open its page. Change any setting and click Save changes. The page also has Stop now, Start now, Pause or Resume, and Delete buttons.

Pausing and Resuming​

Pause a schedule to stop it acting at its times without deleting it. Pausing does not start or stop any resources. Resume it to make it Active again.

Running a Stop or Start Now​

Execute Stop Now and Execute Start Now (Stop now and Start now on the schedule's page) stop or start the schedule's resources right away, outside its times, whether the schedule is active or paused. The run is recorded in the execution history.

Execution History​

View History lists the schedule's runs, newest first, both the scheduled ones and the ones run now. The last 50 runs are kept.

ColumnDescription
TimeWhen the run happened
Actionstop or start
ResourcesHow many resources were stopped or started
StatusSuccess, or Failed when any resource in the run could not be stopped or started

Keeping a Resource Running​

A schedule acts on every resource in its scope; there are no per-resource exemptions. To keep a resource running, leave it out of the scope: give the schedule the Resource Group scope with a group that holds only the resources that should stop. A Platform (Global) scope covers every app, add-on, workspace, and self-hosted model on the platform, and a User scope every one the user owns.

A schedule reads its group's members each time it runs, so to keep one resource running for a while, remove it from the group and add it back later. To skip a whole schedule, pause it.

Schedule Examples​

Development Environment -- Weeknight Shutdown​

Stop development resources after business hours and restart them in the morning:

  • Scope: Resource Group ("Development Environment")
  • Timezone: Eastern Time
  • Stop Time: 7:00 PM
  • Start Time: 8:00 AM
  • Days of Week: Monday through Friday

With this schedule, development resources run 11 hours per day on weekdays and stay stopped from Friday 7:00 PM until Monday 8:00 AM.

Staging Environment -- Extended Hours​

Keep staging resources running during extended business hours but stop overnight:

  • Scope: Resource Group ("Staging Environment")
  • Timezone: UTC
  • Stop Time: 10:00 PM
  • Start Time: 6:00 AM
  • Days of Week: Monday through Saturday

Staging resources run 16 hours per day from Monday to Saturday and stay stopped from Saturday 10:00 PM until Monday 6:00 AM.

User-Level Off-Hours Shutdown​

Automatically stop resources for a specific developer during off-hours:

  • Scope: User (specific developer)
  • Timezone: Pacific Time
  • Stop Time: 6:00 PM
  • Start Time: 9:00 AM
  • Days of Week: Monday through Friday

Platform-Wide Overnight and Weekend Shutdown​

Stop every app, add-on, workspace, and self-hosted model overnight and over the weekend:

  • Scope: Platform (Global)
  • Stop Time: 8:00 PM
  • Start Time: 7:00 AM
  • Days of Week: Monday through Friday

Resources stop at 8:00 PM each weekday and start at 7:00 AM, so they stay stopped from Friday 8:00 PM until Monday 7:00 AM. A schedule uses the same stop and start times on every selected day, so it cannot stop resources at weekends only.

A Platform scope includes production resources. Use Resource Group schedules instead when some resources must keep running.

Combining Schedules with Budgets​

For maximum cost control, combine resource schedules with budgets:

  1. Set schedules to automatically reduce costs during off-hours
  2. Set budgets to catch unexpected spending that exceeds schedule savings
  3. Configure budget thresholds based on expected post-schedule spending levels

For example, if a development environment costs $100/day at full utilization, and a schedule reduces runtime to 11 hours/day on weekdays only, expected monthly cost drops from ~$3,000 to ~$1,000. Set the budget at $1,200/month with an alert at 80% ($960) to catch any anomalies.

Best Practices​

Start with Development Environments​

Development resources typically have the most flexibility for scheduling. Start here for immediate savings before applying schedules to staging or shared environments.

Keep Critical Resources Out of Scope​

Put only resources that may stop into a scheduled resource group. Leave out resources that must remain available:

  • Long-running batch jobs that span off-hours
  • Resources needed for overnight deployments or testing
  • Shared services used by teams in different time zones

Set Appropriate Timezones​

Choose timezones that match the working hours of the team using the resources. For globally distributed teams, consider using UTC and setting stop/start times that accommodate all time zones.

Monitor Execution History​

Review execution history regularly to ensure schedules are working correctly:

  • Check for failed runs that may indicate resource issues
  • Verify that the correct number of resources are being affected

Coordinate with Team Schedules​

Communicate schedule changes to affected teams. Unexpected resource shutdowns can disrupt work if team members are unaware of the schedule.

warning

Resource schedules will stop running resources at the configured stop time. Ensure that no critical workloads are running during scheduled stop windows, or keep resources that must remain available out of the schedule's scope. A schedule's start brings back every resource in its scope, including ones that were stopped before its stop time.