Fixtures & Calendar Integration — Build Requirements

MUST — ship blockers

Every item below is backed by verified evidence that getting it wrong loses users. These are acceptance criteria, not aspirations.

FX-01

One authoritative timezone per fixture

Store every fixture time against a single authoritative timezone (the venue's, or UTC plus the venue timezone) and render from it everywhere. Never resolve display time from the device's current timezone setting, the timezone at install time, or the editor's locale.

Acceptance
  • Two devices with different OS timezone settings show the identical kickoff time for the same fixture.
  • Editing any event field (including team selection) never shifts the stored time.
  • Emails and push notifications show the same time as every in-app screen.
  • A user who travels across timezones still sees the fixture at the venue's local time, clearly labeled.
Why n = 22 TeamSnap, Spond, Pitchero 2013–2025

22 reviews across 12 years describe the same failure: different screens, devices, or channels showing different times for the same fixture. One vendor's developer publicly promised a fix in 2013; the identical failure was still being reported in November 2025. One review describes five parents comparing phones, none showing the same time — ending in a switch back to WhatsApp.

On one phone, the times show an hour off from the other phone (e.g., 6pm CST vs 7pm CST). Even more confusing is that the home feed on one phone shows 6pm CST for the practice, 7pm CST when listed on the schedule page, and 7pm CDT when the event is opened!!!
TeamSnap ★☆☆☆☆ 2023-04-08 #8585
Full evidence →
FX-02

Android and iOS parity from day one

Calendar sync and fixture display ship on both platforms simultaneously with identical capability. Platform parity is a release gate, not a backlog item.

Acceptance
  • Feature-flag matrix shows no calendar/fixture capability enabled on one platform and not the other.
  • Cross-platform test: the same fixture created on iOS renders identically (time, location, RSVP state) on Android, and vice versa.
Why n = 38 TeamSnap, Heja, Teamer 2013–2025

38 reviews spanning 12 years complain that calendar features work on one platform and are missing or broken on the other. The pattern persists in the newest data — this is a 'ship both together or don't ship' lesson, not a 'get to Android eventually' one.

Lack of calendar subscription on android is the worst. My wife can subscribe on her iPhone, but I can't.
TeamSnap ★★☆☆☆ 2021-12-04 #10243
Full evidence →
FX-03

Schedule visibility, RSVP, and the consolidated view are free — permanently

Viewing fixtures, responding to availability, and seeing all of a family's or coach's teams in one consolidated schedule are never behind a paywall. Monetize elsewhere.

Acceptance
  • No pricing gate exists on any path from opening the app to seeing a fixture or answering an RSVP.
  • A parent with children in three teams sees all three schedules in one view on the free tier.
Why n = 99 TeamSnap, Pitchero, others 2013–2026

99 reviews punish paywalling of the schedule/RSVP loop. The cleanest incident: one vendor moved its multi-team calendar view behind a subscription in March 2024 and took 22 near-identical outraged reviews in 18 days, many with explicit switch-away statements — including from users who were otherwise 4–5-star fans. Users read 'pay to see the calendar' as hostage-taking, every time.

Then they get greedy and want a subscription charge for the 'All Teams' calendar??? Are you kidding me??? Charging for a darn calendar view??? Ridiculous.
TeamSnap ★☆☆☆☆ 2024-03-13 #7135
Full evidence →
FX-04

Recurring fixtures are a true series

Model recurring events (weekly training, season fixtures) as one series with instances, supporting 'edit this occurrence' vs 'edit the series' semantics. Never as N independent copies.

Acceptance
  • Changing a series' time updates all future instances exactly once — no duplicates, no orphaned entries in subscribed calendars.
  • Editing a single occurrence never corrupts or alters the rest of the series.
  • Creating a season-long series succeeds reliably, including with payments or availability attached.
Why n = 7 TeamSnap, Spond, TeamHub 2014–2026

Duplicate and orphaned calendar entries after a recurring slot changes are confirmed across three apps; one incident cluster shows 'edit this event only' silently corrupting the entire series. Only 2 of the 40+ catalogued apps even attempt series modeling, and one of those two has user evidence that series creation itself errors out — nobody in this market does it right yet.

If I add a recurring event on the schedule and try to change just one day, it changes the whole series!
TeamSnap ★★★☆☆ 2024-03-10 #8011
Full evidence →
FX-05

Sync is fast, and its state is visible

Fixture changes propagate to subscribed calendars and all app views within minutes, and the user can always see when the schedule was last updated. Failures surface visibly instead of leaving stale data that looks current.

Acceptance
  • A fixture change reaches subscribed external calendars within 15 minutes — a chosen engineering target; the punished market failure is multi-day lag.
  • Every schedule view carries a last-updated indicator.
  • A failed sync produces a visible error state, never a silently stale calendar.
Why n = 15 TeamSnap, Heja 2015–2025

15 reviews describe sync taking days or never completing, with users discovering stale times only by missing sessions. The damage is disproportionate to the bug: once a user has been burned by one wrong time, they re-check everything in WhatsApp — the exact behavior a club app exists to replace.

I update a attending status to going to the game but doesn't update the calendar in Google for DAYS. One time it worked within 2 hours but every other time I am waiting 48 hours.
TeamSnap ★☆☆☆☆ 2024-09-29 #7745
Full evidence →
FX-06

Notification volume is under the user's control

Per-event and per-group notification muting exists from day one. Email reminders obey the user's notification preferences. Unsubscribe means everything stops.

Acceptance
  • A user can mute a single event, or a single team/group, without muting everything.
  • Disabling in-app notifications also stops reminder emails for the same events.
  • After account deletion or unsubscribe, zero further reminder emails are sent.
Why n = 14 TeamSnap, Spond 2013–2026

14 reviews describe reminder spam the user cannot control, including two independent cases of users deleting their account or the app specifically because reminder emails kept arriving after they had turned notifications off. One explicit design request has been on the record since 2022: notification filtering per group, per type, per event.

notifications/emails are really persistent regardless of my settings I first disabled notifications, but still they kept coming. I then deleted the app. Then I got bombarded with emails, so I unsubscribed from all emails, but still the emails come! When will it end?
Spond ★☆☆☆☆ 2026-02-05 #4716
Full evidence →
FX-08

Per-fixture availability with a reason

Availability is asked and answered per fixture — yes / no / maybe plus an optional reason — not as an all-or-nothing season setting. Responses are visible to the organizer at a glance.

Acceptance
  • A player can be available for Saturday's match and unavailable for Tuesday training without side effects.
  • Decline offers an optional reason field the organizer can see.
  • The organizer sees a single per-fixture roll-up of who is in, out, and unanswered.
Why n = 3 Spond, Pitchero 2022–2025

Three reviews punish all-or-nothing availability and sync — subscribe to everything or nothing, with no per-match choice. Alongside them, direct feature requests for per-match granularity and a decline-reason field run continuously from 2014 to 2026: a Teamer review asked for decline reasons in 2014, a Heja review asked for a 'maybe / if needs be' option in 2019, and the requests were still arriving in 2026. The market has spent over a decade asking for exactly this behavior.

Shocking that you can't base selection on a match, just a day. Where multiple matches are on same day, so you select 'yes' or 'no' for all fixtures.
Pitchero ★☆☆☆☆ 2025-05-02 #2918
Full evidence →
SHOULD — strongly-evidenced defaults

Deviate from these only with a reason. The evidence is strong but the failure is degradation, not exodus.

FX-09

One-tap add-to-calendar, and one-tap subscribe-to-season

Every fixture offers add-to-calendar in one tap; every team offers subscribe-once so the whole season lands in the user's calendar and stays current.

Acceptance
  • From a fixture screen, the event is in the user's device calendar in one interaction.
  • A season subscription reflects later fixture changes without re-subscribing.
Why Teamer, Heja, Ollie, adjacent apps 2017–2026

A steady stream of direct requests across a decade: 'add match details and times to Google Calendar straight from the app' (2017), 'would be great to add games to the phone calendar' (2017), 'the ability to sync with the calendar on your phone would be wonderful' (2026) — and a one-star review calling the absence of calendar linking 'a gigantic flaw'. Users describe manually retyping fixtures into their calendars as a top annoyance with apps that lack this.

Heja is mostly great, but the ability to sync with the calendar on your phone would be wonderful.
Heja ★★★★☆ 2026-01-03 #553
Full evidence →
FX-10

Edits propagate everywhere, atomically

A changed kickoff time updates every surface that ever displayed it: list views, detail views, subscribed calendars, and the wording of any pending notifications.

Acceptance
  • After a time change, no surface in or out of the app shows the old time.
  • Notifications sent after the change reference the new time.
Why n = 9 TeamSnap, Pitchero, Spond 2018–2025

The most trust-destroying variant of the sync problem: the app disagreeing with itself. Reviews describe the home feed, schedule page, and event page showing three different times for the same fixture after an edit.

Very disappointing to have time zone issues changing event times on edit... Time is set correctly via webpage but on editing team selection with the app, the time changes since we are in CET and not BST.
Pitchero ★☆☆☆☆ 2018-04-14 #3524
Full evidence →
FX-11

Season-start release discipline

Treat the weeks around season start as a change freeze for fixtures and availability surfaces: no UI overhauls, heavy regression coverage on anything that must ship then.

Acceptance
  • Release calendar marks season-boundary freeze windows for schedule-touching changes.
  • A regression suite covering fixture display, availability, and calendar sync gates any release in those windows.
Why n = 21 Pitchero 2017

The clearest natural experiment in the corpus: a single update that broke fixture display and availability landed exactly at season start, when clubs onboard players and collect subs. It drew 21 reviews (18 one-star) in five weeks from an app that had received almost no reviews in the preceding three months. Season start is when clubs are watching — and when breakage costs most.

Basic functionality like recording availability is no longer available... which is really poor at the start of the season when all clubs are dealing with subs.
Pitchero ★☆☆☆☆ 2017-09-18 #3222
Full evidence →
FX-12

Bulk fixture entry

An organizer can create a season's fixtures in one operation — paste, CSV import, or league-feed pull — rather than one at a time.

Acceptance
  • Creating 20 fixtures takes one flow, not 20.
  • Imported fixtures carry venue and time correctly into the series model.
Why Crossbar Mobile (as a user request)

Across the 40+ catalogued apps, bulk schedule upload appears exactly once — and there only as a user wish, not a shipped feature. For volunteer organizers, per-fixture data entry is the largest setup cost, and adjacent complaints (season fees that can't attach to a whole series, invites that can't go out at once) point at the same missing bulk workflow.

Full evidence →
FX-07

Minimal calendar permissions: publish a feed, don't demand access

Integrate with the user's calendar via a subscribable feed (iCal) or add-only writes. Never request full read/write access to the user's personal calendar.

Acceptance
  • Calendar integration works end-to-end without the app ever reading the user's existing calendar entries.
  • The OS permission prompt, if any, is add-only.
Why n = 2 Spond 2025–2026

A small but recent and growing complaint: users refusing sync because the app demands full calendar access. It is exactly the kind of privacy objection that scales badly once noticed, and the feed model costs nothing to choose up front.

the calendar feature requests full access to all calendars on the device. Instead, it should export an ical link without requiring access to read and edit.
Spond ★☆☆☆☆ 2026-04-03 #5481
Full evidence →
DIFFERENTIATORS — gaps nobody fills

Options, not obligations. Each is a place where the market's failure is documented and no competitor has a working answer.

FX-13

Series modeling that provably works end-to-end

Make 'recurring events that never duplicate, never orphan, and never corrupt' a tested, promised behavior — including with payments and availability attached to the series.

Acceptance
  • A published test suite (or in-product guarantee) covers create, edit-one, edit-series, cancel-one, cancel-series — with calendars subscribed and payments attached.
Why n = 10 market-wide 2014–2026

Only 2 of 40+ catalogued apps attempt true series modeling, and user evidence shows even those error out on creation. Every duplicate-entry and series-corruption complaint in this corpus is a user this feature wins.

Full evidence →
FX-14

The family view as a free, first-class surface

One consolidated schedule for a parent with multiple children across multiple clubs, free, on the home screen — the exact view a competitor chose to paywall in 2024 to visible outrage.

Acceptance
  • A multi-child parent completes 'what's on this weekend for us' in one glance, no tier upgrade.
Why n = 22 TeamSnap (negative example) 2024

The March 2024 paywall backlash (22 outraged reviews in 18 days) proves both that the view is loved and that the market leader has chosen to tax it. Offering it free is a positioning statement with documented demand behind it.

Full evidence →
FX-15

Visible trust markers on every fixture

Show when each fixture was last changed and by whom, so a family checking the night before never has to wonder whether the time they see is current.

Acceptance
  • Every fixture surface shows last-changed information at a glance.
  • A changed-since-you-last-looked indicator exists for upcoming fixtures.
Why n = 8 TeamSnap, Spond 2013–2025

The recurring end-state of sync and timezone failures is social: parents comparing phones, group chats relitigating the kickoff time, organizers fielding 'is it really 7pm?' messages. No app in the corpus surfaces schedule freshness; the mistrust it would answer is documented across 12 years.

Full evidence →
NEVER — documented ways to lose users

Each prohibition below has a measured backlash behind it.

  1. ✕

    Never put schedule visibility, RSVP, or the consolidated multi-team view behind a paywall.

    22 outraged reviews in 18 days the last time a market leader tried it; 99 paywall complaints over 13 years.

  2. ✕

    Never derive a displayed fixture time from the device's timezone setting.

    22 corrupted-kickoff-time reviews across 12 years; publicly promised fixes that never landed.

  3. ✕

    Never ship a schedule or availability overhaul near season start.

    21 reviews (18 one-star) in five weeks for the one competitor that did.

  4. ✕

    Never send reminder emails that ignore the user's notification settings.

    Two documented account/app deletions over exactly this.

  5. ✕

    Never request full read/write access to the user's personal calendar.

    A recent, growing privacy objection with a zero-cost alternative (feed model).

  6. ✕

    Never store recurring fixtures as independent copies.

    Root cause of every duplicate-entry and series-corruption complaint in the corpus.

Market baseline — what already counts as standard

Share of the 40+ catalogued competitor and adjacent apps offering each capability. Anything near the top is table stakes: its absence is noticed, its presence wins no points.

Event RSVP
41 apps
Match/fixture scheduling
41 apps
Calendar sync
37 apps
Attendance tracking
34 apps
Availability polling
21 apps
Fixture management (dedicated)
18 apps

Every number and quote on this page is drawn from a verified evidence base; the full quote-level evidence — all patterns, incidents, and the 78-row citation appendix — is published alongside this page.

Full evidence pack: every pattern, incident, and verified quote