Overview

Spark Schedule fetches a radio station programme schedule from a remote JSON endpoint and renders it as styled time-slot cards for any given day of the week. Each card shows the start and end time, show name, host name, description, and a genre tag. When viewing the schedule for today, the currently-airing show is automatically highlighted with an “On Air” badge.

This plugin is built for WordPress and has no external library dependencies — all styling is self-contained and scoped to the spark-schedule- CSS class namespace.

Setup

  1. Install and activate the plugin.
  2. Go to Settings → Spark Schedule to optionally change the JSON source URL or cache duration.
  3. Place the
    12:00 AM to 4:00 PM
    Welcome to The Spark Web Radio, broadcasting straight out of Brandon, Manitoba!  The Spark was built for true music lovers who are tired of the same repetitive, corporate playlists. We…
    4:00 PM to 6:00 PM
    Frank McGwire
    PLANET KIA's Franko in the Afternoon The Afternoon Drive on The Spark Web Radio is a high-energy music and community-focused radio program hosted by station general manager and media veteran…
    6:00 PM to 11:59 PM
    Welcome to The Spark Web Radio, broadcasting straight out of Brandon, Manitoba!  The Spark was built for true music lovers who are tired of the same repetitive, corporate playlists. We…
    shortcode on any page or post, passing the day attribute for the day you want to display.
  4. To build a full weekly schedule with tabs, place one shortcode per tab pane with its matching day attribute.

Shortcode Reference

Attribute Default Description
day today The day to display. Accepts monday, tuesday, wednesday, thursday, friday, saturday, sunday, or today (auto-detects current day from your WordPress timezone setting).
source Plugin setting Override the JSON URL for this specific shortcode instance only. Useful when embedding schedules from multiple stations on one site.
highlight yes Set to no to disable the “On Air” badge and live-card highlighting for this instance.

Examples

12:00 AM to 4:00 PM
Welcome to The Spark Web Radio, broadcasting straight out of Brandon, Manitoba!  The Spark was built for true music lovers who are tired of the same repetitive, corporate playlists. We…
4:00 PM to 6:00 PM
Frank McGwire
PLANET KIA's Franko in the Afternoon The Afternoon Drive on The Spark Web Radio is a high-energy music and community-focused radio program hosted by station general manager and media veteran…
6:00 PM to 11:59 PM
Welcome to The Spark Web Radio, broadcasting straight out of Brandon, Manitoba!  The Spark was built for true music lovers who are tired of the same repetitive, corporate playlists. We…
12:00 AM to 4:00 PM
Welcome to The Spark Web Radio, broadcasting straight out of Brandon, Manitoba!  The Spark was built for true music lovers who are tired of the same repetitive, corporate playlists. We…
4:00 PM to 6:00 PM
Frank McGwire
PLANET KIA's Franko in the Afternoon The Afternoon Drive on The Spark Web Radio is a high-energy music and community-focused radio program hosted by station general manager and media veteran…
6:00 PM to 7:00 PM
Ken & MJ
The Flower Power Hour with Ken & MJ (encore edition) on The Spark Web Radio is a nostalgic, intricately produced audio journey that serves as a vibrant flashback to the Golden Age…
7:00 PM to 11:59 PM
Welcome to The Spark Web Radio, broadcasting straight out of Brandon, Manitoba!  The Spark was built for true music lovers who are tired of the same repetitive, corporate playlists. We…
12:00 AM to 12:00 PM
Welcome to The Spark Web Radio, broadcasting straight out of Brandon, Manitoba!  The Spark was built for true music lovers who are tired of the same repetitive, corporate playlists. We…
12:00 PM to 3:00 PM
Vince Daniels
THE TIME MACHINE WITH VINCE DANIELS (encore edition) Presented by Vince Daniels Productions, the show acts as an auditory voyage through the formative eras of rock music, specifically targeting classic…
3:00 PM to 4:00 PM
Welcome to The Spark Web Radio, broadcasting straight out of Brandon, Manitoba!  The Spark was built for true music lovers who are tired of the same repetitive, corporate playlists. We…
4:00 PM to 6:00 PM
Frank McGwire
PLANET KIA's Franko in the Afternoon The Afternoon Drive on The Spark Web Radio is a high-energy music and community-focused radio program hosted by station general manager and media veteran…
6:00 PM to 7:00 PM
Ken & MJ
The Flower Power Hour with Ken & MJ (encore edition) on The Spark Web Radio is a nostalgic, intricately produced audio journey that serves as a vibrant flashback to the Golden Age…
7:00 PM to 8:00 PM
Welcome to The Spark Web Radio, broadcasting straight out of Brandon, Manitoba!  The Spark was built for true music lovers who are tired of the same repetitive, corporate playlists. We…
8:00 PM to 9:00 PM
Garry Kroeger
PUMPED 60 Pumped 60 is a premier hard-hitting specialty rock show hosted by Garry Kroeger on The Spark Web Radio.   Host Garry Kroeger guides listeners through each episode with…
9:00 PM to 11:59 PM
Welcome to The Spark Web Radio, broadcasting straight out of Brandon, Manitoba!  The Spark was built for true music lovers who are tired of the same repetitive, corporate playlists. We…
12:00 AM to 8:00 PM
Welcome to The Spark Web Radio, broadcasting straight out of Brandon, Manitoba!  The Spark was built for true music lovers who are tired of the same repetitive, corporate playlists. We…
8:00 PM to 9:00 PM
Garry Kroeger
PUMPED 60 Pumped 60 is a premier hard-hitting specialty rock show hosted by Garry Kroeger on The Spark Web Radio.   Host Garry Kroeger guides listeners through each episode with…
9:00 PM to 11:59 PM
Vince Daniels
THE TIME MACHINE WITH VINCE DANIELS The Time Machine with Vince Daniels is a popular, chronologically driven specialty rock program broadcasting on The Spark Web Radio. Presented by Vince Daniels…

Expected JSON Format

The plugin expects a top-level schedule object containing day keys, each holding an array of show objects:

{
  "schedule": {
    "monday": [
      {
        "time":        "06:00",
        "endTime":     "10:00",
        "show":        "Morning Spark",
        "host":        "Marcus Johnson",
        "description": "Start your week right.",
        "genre":       "Variety"
      }
    ]
  }
}

Times use 24-hour format (HH:MM). Overnight shows (e.g. 22:0002:00) are handled correctly.

Caching

Schedule data is cached via WordPress transients for 1 hour by default. The cache duration is configurable in Settings → Spark Schedule. To force an immediate refresh, use the Clear Cache button on that settings page.

When a custom source attribute is provided in a shortcode, it uses its own transient keyed to that URL.

CSS Customisation

All card elements use the spark-schedule- prefix. You can override colours and sizing in your theme’s Additional CSS or a child theme stylesheet. Key classes:

Class Element
.spark-schedule-wrap Outer container for all cards
.spark-schedule-item Individual show card
.spark-schedule-item.is-live The currently airing show
.spark-schedule-time-col Left column with start/end times
.spark-schedule-show Show name heading
.spark-schedule-live-badge “On Air” badge
.spark-schedule-host Host name line
.spark-schedule-desc Show description
.spark-schedule-genre Genre tag pill

Troubleshooting

  • Schedule not showing? Verify the JSON URL is publicly accessible. Try opening it directly in a browser tab. Use the Clear Cache button on the settings page after fixing any URL issues.
  • “On Air” badge not appearing? Confirm your WordPress timezone is set correctly under Settings → General → Timezone. The plugin determines “now” relative to that timezone.
  • Stale data? Use the Clear Cache button on the settings page to flush all Spark Schedule transients.
  • Wrong day for day="today"? Check Settings → General → Timezone. The plugin calls date_i18n() which respects the WordPress timezone offset.
  • Cards look unstyled? Ensure nothing in your theme is dequeuing all plugin styles. You can also add !important overrides in Additional CSS if a theme resets cascade.

FAQ

Can I show multiple days on one page?
Yes. Use a separate shortcode per tab pane, each with its own day attribute. The JSON is fetched once and cached, so multiple shortcodes on one page do not cause extra HTTP requests.
Does this work in Gutenberg?
Yes — use a Shortcode block.
Does this work in Breakdance, Elementor, or Divi?
Yes — use those builders’ shortcode widgets.
Can I point it at my own schedule JSON?
Yes. Either set a global default in Settings → Spark Schedule, or pass a source attribute in each individual shortcode.
What happens if the JSON endpoint is unreachable?
The shortcode outputs a friendly notice. Previously cached data will still serve if within the cache window.
©2026 The Spark Web Radio. All rights reserved.
Made with
for music lovers everywhere