PSD Athletics Schedule
Retrieve and present athletics schedules for Peninsula School District's two high schools.
| School | Mascot | Abbreviation | Official Site | |--------|--------|-------------|---------------| | Gig Harbor High School | Tides | GHHS | tidesathletics.com | | Peninsula High School | Seahawks | PHS | peninsulaathletics.com |
Data Source
Official sites (PlayOn/Next.js) are JavaScript-rendered and unreadable via web search. Use MaxPreps schedule pages instead — they embed JSON-LD structured data in server-rendered HTML.
Data pipeline: ArbiterSports (scheduling) → PlayOn Sites → MaxPreps
Base URLs:
- GHHS:
https://www.maxpreps.com/wa/gig-harbor/gig-harbor-tides/ - PHS:
https://www.maxpreps.com/wa/gig-harbor/peninsula-seahawks/
Sport-specific schedule URLs are in references/sport-urls.md.
Workflow
1. Parse the Request
Determine from the user's request:
| Parameter | Default | Examples | |-----------|---------|---------| | Date range | Next 7 days | "today", "this week", "next two weeks", "March schedule" | | School filter | Both | "GHHS only", "Peninsula games", "Tides baseball" | | Sport filter | All in-season | "baseball", "soccer", "track" |
2. Determine Active Season
Only fetch sports currently in season. Overlap periods check both seasons.
| Season | Months | Sports | |--------|--------|--------| | Fall | Sep–Nov | Football, Volleyball, Cross Country, Girls Swimming, Water Polo, Girls Soccer (Fall) | | Winter | Dec–Feb | Basketball, Boys Swimming, Wrestling, Bowling, Flag Football | | Spring | Mar–Jun | Baseball, Softball, Soccer, Tennis, Golf, Track & Field, Lacrosse, Water Polo (Girls), Dance |
If the user asks for a specific sport that's out of season, check it anyway — schedules may be posted early.
3. Fetch Schedule Data
Read references/sport-urls.md to get the MaxPreps schedule URLs for the active season.
For each relevant sport URL:
- Use web search to visit the MaxPreps schedule page
- Extract events within the requested date range
- For each event, capture: date, time, sport/level, opponent, home/away, link
- Skip pages that 404 or have no data — move on
Parsing rules:
- "vs" prefix = Home game
- "@" prefix = Away game
- Times are Pacific Time
- If cancelled/postponed, note in output
4. Present Results
Combine all events into a single markdown table sorted by date/time:
| Date | Time | School | Sport | Opponent | Home/Away | Details |
Formatting rules:
- Group by date with bold date headers
- School column: "GHHS" or "PHS"
- Details column:
[View](maxpreps-url)link - Footer: event counts per school + total
- Footer: "Schedule data sourced from MaxPreps. For official schedules: tidesathletics.com | peninsulaathletics.com"
If no events found for the date range, state that clearly and link to official sites.
Scan to join WeChat group