Skip to main content
Your progress
0 of 6 lessons complete0%
T1 / M1.3 / L3 OF 6 / Operator TIER / 10 min

The 24-hour weekly grid: spotting gaps and overlaps

Outcome

By the end of this lesson, you will be able to read the 24-hour weekly grid and spot gaps and overlaps in a schedule before save.


TierOperator
JTBD”Catch the cron bug before it costs us a Saturday outage.”
PersonasAll product users
PrerequisitesL1, L2
Time10 minutes
Bloom verbRead (Understand) and Spot (Analyze)

1. Concept

A cron expression is exact and tells you nothing about what it looks like in practice.

You can write three of them, read them back, be entirely satisfied, and find out on Saturday that the machines ran all weekend. The grid is there so you find out before you press save, not afterwards on the bill.

What the grid shows

Terminal window
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Mon ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ░░ ░░ ░░ ░░
Tue ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ░░ ░░ ░░ ░░
Wed ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ░░ ░░ ░░ ░░
Thu ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ░░ ░░ ░░ ░░
Fri ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ░░ ░░ ░░ ░░
Sat ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░
Sun ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░
LEGEND: ██ ON ░░ OFF

This is the visual representation of 0 8 * * 1-5 (start) + 0 20 * * 1-5 (stop). The grid shows ON blocks at 8 AM through 8 PM on weekdays, OFF blocks everywhere else.

In the product the grid responds to the mouse. Hover any square and it tells you what put it in that state: started by the first cron at 08:00, stopping at the second at 20:00.

The three mistakes it catches

Failure 1: The unintended gap.

Cron: 0 8 * * 1-5 (start) + 0 18 * * 1-5 (stop). Intent: “weekdays 8am-6pm.”

Grid:

Terminal window
... 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20...
Mon ░░ ░░ ░░ ██ ██ ██ ██ ██ ██ ██ ██ ██ ░░ ░░ ░░...

ON 8 AM through 6 PM. That’s 10 hours per weekday, not 12. If the intent was 8 AM through 8 PM, the cron 0 18 * * 1-5 is wrong: it stops too early. The grid reveals this. The fix: change the stop cron to 0 20 * * 1-5.

Failure 2: The unintended overlap.

Cron #1: 0 8 * * 1-5 (start), Cron #2: 0 20 * * 1-5 (stop), Cron #3: 0 9 * * 1-5 (start).

The third one does nothing. It starts a resource at 9 AM that the first one already started at 8. The grid shows two starts in the same morning. Nothing breaks; the action log just fills with events that meant nothing. Delete the third cron.

Failure 3: The weekend trap.

Cron #1: 0 8 * * 1-5 (start), Cron #2: 0 20 * * 1-5 (stop).

Terminal window
Mon-Fri ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ░░ ░░ ░░ ░░
Sat ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░
Sun ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░ ░░

This is correct AS LONG AS the resource was OFF on Friday at 8 PM. If a manual start fired on Friday 9 PM (for an overnight build), the schedule has no stop cron between Friday-stop (already passed at 8 PM) and Monday-start (next firing): so the resource stays running all weekend.

The fix: add a belt-and-suspenders weekend stop cron: 0 0 * * 0,6 (“midnight Saturday and Sunday”). It’s redundant when the schedule is operating normally but catches the edge case.

Reading the grid for one specific firing

Hovering over any cell in the grid (in the product) shows the firing context:

Terminal window
Tuesday 14:30 (cell hover)
─────────────────────────────────────────────────
State at this time: ON
Most recent firing: Cron #1 at Tuesday 08:00 (Start)
Next firing: Cron #2 at Tuesday 20:00 (Stop)
Time until next: 5h 30m

This is the right level of detail to confirm the schedule’s behavior at any point in the week.

What the grid does NOT show

Two limitations:

  1. It does not show overrides. Force-on / force-off overrides (M1.5) can suspend the schedule’s normal pattern for a window. The grid shows the schedule’s intent, not the runtime state.
  2. It does not show resource-specific differences. If a resource has its own override, the grid still shows the schedule’s default pattern. Per-resource state is in the resource detail page.

The grid is a schedule preview. The Resources page is where you see actual current state.

Comparing two schedules side by side

For complex coverage (multiple schedules acting on overlapping resource sets), the Schedules page can render two grids side by side. This is useful when designing complementary schedules; e.g., “Business Hours” + “Weekend Scale-Down” that together cover 168 hours/week without gaps or overlaps.

Terminal window
SCHEDULE A: Business Hours SCHEDULE B: Weekend Scale-Down
Mon ░░░░██████████████████████░░░░ Mon ░░░░░░░░░░░░░░░░░░░░░░░░
Tue ░░░░██████████████████████░░░░ Tue ░░░░░░░░░░░░░░░░░░░░░░░░
......
Sat ░░░░░░░░░░░░░░░░░░░░░░░░░░░░ Sat ░░ ON only midnight ░░
Sun ░░░░░░░░░░░░░░░░░░░░░░░░░░░░ Sun ░░ stop firing ░░

Together they ensure resources are OFF outside business hours and OFF entirely on weekends. The visual shows the combined effect.


2. Demo

A real schedule design session, with the grid catching a bug:

Terminal window
INTENT: Stop dev outside business hours and weekends, EU timezone.
ATTEMPT 1 (two crons):
Cron #1 "0 9 * * 1-5" Start 09:00 weekdays
Cron #2 "0 21 * * 1-5" Stop 21:00 weekdays
Grid shows: ON 09:00-21:00 weekdays. Weekend grid all OFF.
But: WHAT IF A RESOURCE WAS LEFT ON FRIDAY EVENING?
It would stay on all weekend (no stop cron until Monday).
ATTEMPT 2 (add weekend belt-and-suspenders):
Cron #3 "0 0 * * 0,6" Stop midnight Saturday and Sunday
Grid shows: ON 09:00-21:00 weekdays. OFF all weekend, with a stop
re-fired at midnight Saturday and Sunday for safety.
Save. The schedule covers the intent fully.

Without the grid, the missing weekend stop cron would have been invisible until somebody manually started a dev resource on Friday evening and forgot. The grid catches the gap before save.


3. Hands-on (6 min)

For your test schedule from L1:

Terminal window
1. Open the schedule in edit mode.
2. View the 24-hour weekly grid.
3. Hover over each hour of each day. Confirm the state matches intent.
4. Look specifically for:
- Gaps you didn't intend
- Overlaps from redundant crons
- Weekend behavior (especially if your schedule has weekday-only crons)
5. If you find a gap, add a belt-and-suspenders stop cron.
6. If you find an overlap, remove or merge crons.
7. Save the corrected schedule.

4. Knowledge check

Q1

The 24-hour weekly grid renders the schedule in:

A. UTC always
B. The schedule’s IANA timezone; so a team in Asia/Kolkata sees the grid relative to their local time, not UTC
C. The viewer’s own local browser timezone, rather than the schedule’s own configured timezone setting
D. America/New_York

Show answer

Correct: B. Grid renders in the schedule’s IANA timezone. Crons are interpreted in that timezone; the grid displays the same way.

Q2

A schedule has 0 8 * * 1-5 start and 0 18 * * 1-5 stop. A resource is running Friday at 9 PM (it was started manually). The schedule next fires Monday at 8 AM. Between Friday 8 PM and Monday 8 AM, the resource state:

A. Stops automatically Friday at 8 PM
B. Stops at noon Sunday
C. Stays running
D. Stops at midnight automatically

Show answer

Correct: C. No stop cron fires between Friday 8 PM (after the stop cron) and Monday 8 AM. The fix is to add a belt-and-suspenders weekend stop cron (e.g., “0 0 * * 0,6”). Cron does not “track” state across firings. A manual start outside the cron firing windows persists until another cron stops it. Belt-and-suspenders weekend stops are the fix.

Q3

The grid shows two ON triggers at 08:00 and 09:00 on the same weekday. Most likely cause:

A. The cron is firing twice
B. Two redundant start crons exist
C. The schedule is broken
D. The IAM role is misconfigured

Show answer

Correct: B. One at “0 8 * * 1-5” and another at “0 9 * * 1-5.” Remove the second; it adds no value and produces noise in the action log. Two start crons firing at different times within the same ON window are redundant. The second start is a no-op on an already-running resource. Remove for cleanliness.


5. Apply

The grid is a first-class part of the schedule create / edit flow:

For schedule design patterns (rolling environments, freeze windows).


Glossary terms touched

24-hour weekly grid · Gap (schedule) · Overlap (schedule) · Belt-and-suspenders cron


Start with the bill.

Foundations takes about five hours. The first lesson is nine minutes.

Open curriculum. No login. No paywall. 290 lessons across 7 courses, three publicly verifiable credentials. Read it on the train, take the exam on a Saturday, list the credential on your résumé Monday.

5h median time to finish Foundations
0 logins, paywalls, or marketing forms
open curriculum, public credential verifier
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·