Managing three kids' schedules across multiple sports platforms, school calendars, and volunteer commitments was driving me crazy. Between GameChanger, TeamSnap, Blue Valley Schools, and SignUpGenius, I was constantly switching between apps just to figure out where everyone needed to be.

So I built a solution that aggregates everything into one unified family calendar—and made it public so the grandparents can finally keep up with their grandkids' activities.

The Problem: Calendar Chaos

With Will in soccer and baseball, Madison in soccer, and Max starting his sports journey, we were drowning in scheduling platforms:

  • GameChanger - Will's baseball team communication
  • TeamSnap - Madison and Max's soccer teams
  • Blue Valley Schools - District calendar with holidays and events
  • SignUpGenius - Volunteer opportunities and team events

Each platform had its own app, its own notifications, and its own way of displaying information. Worse yet, the grandparents had no visibility into what was happening with their grandkids.

The Solution: One Calendar to Rule Them All

I built a web-based family calendar that pulls data from all these sources and presents it in a clean, unified interface. The system automatically categorizes events by child and type, making it easy to see what's coming up for each kid.

Technical Challenges and Solutions

TeamSnap: The OAuth Success Story

TeamSnap has a proper API with OAuth authentication. I created an OAuth application that connects directly to their system, pulling calendar data in real-time. This was the straightforward part—proper API documentation, clean data formats, and reliable access.

GameChanger: The Scraping Challenge

GameChanger, unfortunately, doesn't offer public API access. Their calendar data is locked behind authentication and dynamic JavaScript loading. This called for a more creative solution.

I used Playwright to automate browser interactions, logging into GameChanger, navigating to the team calendar, and extracting event data. The scraper runs on a schedule, parsing the HTML and converting it into iCal format for integration with the rest of the system.

School and Volunteer Calendars

Blue Valley Schools provides public iCal feeds, making integration straightforward. SignUpGenius also offers calendar exports, though their format required some custom parsing to extract meaningful event details.

Features That Make Life Easier

Smart Filtering

The calendar includes filters for:

  • By Child - See only Will's, Madison's, or Max's events
  • By Type - Games, practices, school events, or volunteer opportunities
  • By Time - Today, this week, this month, or all upcoming

Multiple Views

Switch between a detailed list view for planning and a traditional calendar grid for quick visual reference. Each event shows the child's name, event type, time, and location.

Export and Sharing

Generate filtered iCal files to import into personal calendars, or share the live web view with family members. The grandparents now have a bookmark they check regularly to see what the kids are up to.

The Grandparent Connection

Making the calendar publicly accessible was a game-changer for family engagement. Grandpa and Grandma can now see upcoming games and plan their visits accordingly. They've become our biggest fans—literally showing up to more games because they finally know when and where they're happening.

Technical Architecture

The system is built with:

  • Frontend - Vanilla JavaScript with responsive CSS
  • Data Sources - OAuth integration, web scraping, and iCal parsing
  • Hosting - GitHub Pages for the web interface
  • Automation - Scheduled Playwright scripts for GameChanger data

Lessons Learned

This project reinforced several important principles:

  • APIs are gold - TeamSnap's proper API made integration smooth and reliable
  • Scraping is fragile - GameChanger's scraping solution requires more maintenance
  • User experience matters - The grandparents' enthusiasm proved the value of accessible design
  • Automation saves sanity - Manual calendar management was unsustainable

The Impact

What started as a personal productivity project became a family connection tool. We're no longer missing events, double-booking activities, or leaving the grandparents out of the loop. The kids love seeing their schedules laid out clearly, and we've eliminated the daily "what do we have today?" conversations.

Most importantly, it's brought the extended family closer to the kids' activities. There's something special about getting a text from Grandpa asking about Saturday's game—because he actually knows there is one.

Check out the live family calendar at our family events page to see the system in action, or explore the code on GitHub.