Skip to content

Releases

v0.8.0

Choose a tag to compare

@chris9012 chris9012 released this 29 Aug 04:30

Fixed

  • Clearing the prefix/color/shared-prefix text fields in the options flow didn't persist — Home Assistant drops empty optional text fields from the submitted form, so the old value was silently reapplied.

Added

  • Optional per-source "Source name" field to identify sources in management lists, independent of the event-title prefix.
  • Per-source "games only" toggle on shareable calendars: skips events whose title doesn't look like a game ("vs"/"at" as a whole word, excluding "Practice ..."), so practices stay off shared calendars.

v0.7.0

Choose a tag to compare

@chris9012 chris9012 released this 27 May 21:06

What's New

  • SportsEngine Tournament parser (se_tourney_parser.py): fetches games directly from SE tournament bracket pages; validates conditional game slots against the division schedule to find the correct bracket opponent
  • Shareable calendar display names: virtual shared-calendar copies now stamp a display label between the emoji prefix and title (e.g. ⚽(Jules) Bears vs Lions) without altering the composite ID or iCalUID used for dedup
  • SE enricher transient errors: 5xx HTTP responses are treated as transient (warning log only, no persistent HA notification); retries once after 3 seconds
  • Config flow: new steps for source shared display name and target calendar source prefix mapping
  • Location abbreviations and title removals now apply to all source types (not just SE)
  • Bracket seed/number prefixes stripped from SE ICS and SE Tourney titles (e.g. [3] - Bears vs Lions → Bears vs Lions)

v0.6.0

Choose a tag to compare

@chris9012 chris9012 released this 24 May 05:04

What''s new

Multiple SportsEngine accounts

You can now configure as many SE logins as needed — one per league, club, or organization. Each calendar source gets a dropdown to pick which SE account enriches it. Add accounts via Configure → Add SE account; manage them via Edit / remove SE accounts.

Existing single-account setups continue to work without any changes (the legacy global credentials remain as a fallback).

Smart title case

A new toggle in Sync Settings (on by default) normalises event titles from all-caps or all-lowercase ICS feeds into readable mixed case:

  • SOCCER GAME VS OPPOSING TEAM → Soccer Game vs Opposing Team
  • Short all-caps abbreviations (≤ 3 chars) are preserved: SB, TB, USA, U12
  • Already mixed-case words are left untouched

Bug fixes

  • SE API 400 error — API calls now include Accept: application/json and a browser User-Agent; HTTP 400 is treated as an expired cookie and triggers automatic re-login
  • Title-removal tokens — token matching is now case-insensitive, so tokens work regardless of how they are typed in the config or what case the ICS feed uses
  • Slow HA startup — the first sync now runs in the background so the integration no longer stalls HA''s boot sequence

v0.5.0

Choose a tag to compare

@chris9012 chris9012 released this 23 May 16:59

What's Changed

  • Fix: team name prefix now applied to all calendar sources (not just SportsEngine)
  • Events with no team name configured are unaffected (prefix is skipped)

v0.4.0 - Calendar dropdown in options flow

Choose a tag to compare

@chris9012 chris9012 released this 23 May 16:49

Changes

  • Target Google Calendar field is now a searchable dropdown populated from your existing calendars
  • Type a new name to create a calendar that doesn't exist yet (created automatically on first sync)
  • Falls back gracefully to free-text entry if the calendar list can't be fetched

v0.3.0 - Initial Release

Choose a tag to compare

@chris9012 chris9012 released this 23 May 16:20

What's included

  • Google Calendar OAuth2 authentication via Home Assistant
    • Sync one or more ICS/iCal feeds to Google Calendar
    • Add, update, and remove events automatically as feeds change
    • MD5-based change detection (only modified events are updated)
    • Composite event IDs (uid + team_name) so the same UID from different teams is tracked independently
    • Backwards-compatible with events previously synced by the GAS predecessor script

SportsEngine enrichment

  • Automatic field/location lookup from the SportsEngine API
    • Headless auto-login — re-authenticates silently when the session expires
    • Configurable location abbreviations and title cleanup rules
    • HA repair issue raised if login fails

Configuration

All settings managed through the Home Assistant UI:

  • Add, edit, enable/disable, and remove calendar sources
    • Sync interval and add/modify/remove toggles
    • SportsEngine credentials, location abbreviations, and title removal tokens

Sensors

  • One sensor per integration entry showing last sync time and per-calendar stats (added/modified/removed)