CodeSouth Schedule Manager
A WordPress plugin, live at CodeSouth radio, for managing DJ show slots with drag-and-drop scheduling, recurring shows and Google Calendar sync.
- Context
- Volunteer, CodeSouth
- Year
- 2026
- Stack
WordPressPHPJavaScriptMySQLPythoniCalendar
The problem
CodeSouth’s show schedule was spread across the station’s WordPress theme, a Google Calendar and the DJ onboarding process, with nothing treating any one of them as the source of truth.
What I built
A WordPress plugin, now live and in use at the station, that becomes the single source of the schedule:
- Drag-and-drop schedule editor for assigning DJs and shows to slots.
- Recurrence rules for weekly, fortnightly and monthly shows.
- Plugin as master: the plugin owns schedule data and writes changes back to the station theme’s show data, so the public site stays in step.
- Google Calendar sync via ICS, with a Python script to parse the existing calendar and match it against live shows.
- Onboarding integration: builds on an earlier token-gated DJ onboarding form that creates draft show posts for admin review.
How I worked
The work had grown across several separate threads that made conflicting decisions. I consolidated it into one project with architecture decision records and shared standards for security and accessibility, so every later decision had a single place to live.
What I learned
- Reverse-engineering an undocumented theme data model, including serialised PHP relationships between DJs and shows.
- Treating calendar data reconciliation as its own problem: matching live shows to calendar entries is messier than generating the schedule itself.