End Time Tracker
Broadcast Schedule — End Time Tracker
A self-contained, single-file web page (no server, no external dependencies) for importing a tab-delimited daily schedule and tracking when shows end.
Core function
Import a .txt schedule file by clicking or drag-and-drop.
Parses show name (col 1), card number (col 8), port letter (col 9), start time (col 10, HH:MM:SS), and duration (col 11, HH:MM:SS) from each line.
Computes an end time for every show, correctly handling durations that roll past midnight.
A date picker sets which calendar day the clock times belong to.
Live tracking
A "Live status" panel shows everything currently on air in real time, updating every second — supports multiple simultaneous shows (e.g. different shows airing on different feeds/ports at once).
Any show within 1 hour of ending is flagged amber with a pulsing warning; ended shows are flagged red.
A dedicated "Next up" box highlights the soonest upcoming show — name, Card/Port, scheduled start time, and a live countdown. If several shows share that exact next start time, it groups them together under one shared countdown ("Next up (N starting together)") and lists each one, instead of only surfacing a single show.
Alerts fire through three channels at once: an in-page toast banner, a two-tone sound chime, and (when permitted) a native desktop notification — with a diagnostic status line and a Test button to confirm which channels are actually working.
Full schedule table
Collapsible — click the header to show/hide it; the choice is remembered across reloads, while the Live Status panel above stays visible either way.
Lists every show with Card number and Port shown below the name, plus Start, End, Duration, and a color-coded status badge (On air / Ending soon / Upcoming / Done).
Clearing finished items
Each show — in both the live status panel and the table — has a ✕ button to dismiss it from view.
A "Clear all finished" button appears once there are completed shows to sweep away in one click.
Cleared items collapse into an undo-able list so mistakes are reversible, and clears are remembered per schedule date via local browser storage.
Keep-awake
A toggle uses the browser's Wake Lock API to stop the PC from sleeping or screensaving while the page is open and the tab is active/visible. It automatically pauses when the tab is backgrounded and re-engages when you switch back — a browser-enforced limit, not something the page can override. A status line reports whether it's active, paused, or unsupported.
Hosting
Fully self-contained HTML/CSS/JS — no build step, no API keys, no backend. Can be hosted anywhere (Netlify, GitHub Pages, your own server) or opened directly as a local file. All parsing happens client-side; the schedule file never leaves the browser. Some features (desktop notifications, wake lock) work best when hosted on your own domain rather than viewed inside an embedded preview.