Schedule

Schedule and validity period define when StormForge generates recommendations and their lifetime

Following the learning period, StormForge generates recommendations at the interval defined by the schedule. An optional recommendation validity period can be configured independently from the recommendation schedule.

For more details and examples showing how these settings are related, see the Schedule, Validity period, Learning period, and Preliminary recommendations sections in the Concepts topic.

Recommendation settings:

Schedule

The schedule on which StormForge generates new recommendations for a workload.

Annotation Default value
live.stormforge.io/schedule "@daily" (equivalent to P1D)

Description

Recommendations are generated automatically for workloads on a schedule, defined by a schedule string. The shortest valid recommendation schedule is once an hour.

To prevent the restarting of many workloads at the same time, StormForge staggers the generation and applying of recommendations throughout the schedule period (when the schedule is an ISO 8601 Duration string or equivalent schedule macro). Examples:

  • @daily or P1D: recommendations are generated and applied across 24 hours
  • PT12H: recommendations are generated and applied across 12 hours

If you require more precise timing for when recommendations are applied, use a cron expression as described below.

Duration expressions

Valid ISO 8601 Duration strings can be specified.

Examples

  • PT1H – Once an hour
  • P1D – Once a day
  • P7D – Once a week

Cron expressions

Cron strings can be used to designate schedules with more specific requirements, such as day-of-week. Cron expressions should specify five fields. For day-of-week, friendly terms such as WED or THU are acceptable in place of numbers. StormForge recognizes the special value H in a field to mean “hash” this value, and use a deterministic, but functionally random value for that field.

By default, cron times are interpreted in UTC. Use schedule.timezone to specify a time zone.

Examples

  • H H * * THU – Once every Thursday
  • 30 0 * * SAT,MON – 12:30am each Saturday and each Monday UTC
  • H H(0-2) * * * – Every day between 12:00am and 2:59am UTC
  • H H(7-9) * * SATL - Between 7:00am and 9:59am UTC on the last Saturday of the month

Schedule macros

Macros are shorthand that can be used as syntactic sugar for common schedules. The available macros are described below and compared with their duration and cron equivalents.

Macro Duration Cron Description
@never P0D N/A Do not generate recommendations automatically
@hourly PT1H H * * * * Once every hour
@daily P1D H H * * * Once every day
@weekly P7D H H * * H Once every week
@midnight N/A H H(0-2) * * * Every day between 12:00am and 2:59am UTC

Time zone

By default, the recommendation schedule is evaluated in UTC. To use a different time zone, set schedule.timezone to an IANA Time Zone identifier.

Annotation Default value
live.stormforge.io/schedule.timezone "UTC"

The time zone applies to cron expressions, duration expressions, and macros. Daylight saving time transitions for the specified time zone are honored.

Examples

  • America/New_York – US Eastern time
  • Europe/London – UK time
  • Asia/Tokyo – Japan Standard Time

For example, pairing the schedule 30 0 * * * with the time zone America/New_York generates recommendations at 12:30am US Eastern.

Key points

  • Each workload can have one and only one schedule string defined for it, of either a duration, cron expression, or schedule macro.
  • The schedule time zone defaults to UTC; configure it using schedule.timezone.
  • Exact times are not guaranteed for recommendation generation. For exact cron strings, recommendations are generated within an hour of the time specified.
  • To avoid concentrated pod churn when new recommendations are applied, use schedules that spread optimization over a period of time. The H capability in cron expressions or using non-specific durations can both help achieve an appropriate scheduling distribution.

Validity period

Defines the duration for which a recommendation remains valid.

Annotation Default value
live.stormforge.io/validity-period None

Description

Overrides the default recommendation validity period where recommendations remain valid until new recommendations are generated according to the recommendation schedule.

Validity period must be greater than the recommendation schedule frequency for the validity period to take effect. For example, if the recommendation schedule is @daily, validity period must be set to at least P1DT1H.

If validity period is configured to be equal to or less than the recommendation schedule, validity continues to be based on the recommendation schedule.

Duration expressions

Only valid ISO 8601 Duration strings can be specified.

Examples

  • P5D” – Five days
  • P14D” – Two weeks
Last modified June 4, 2026