Eight calendars, one answer: can I take this game?

Can I take this game? The answer is spread across eight calendars — two assigning systems, two of your kids’ club schedules, a family calendar, your own appointments and a travel itinerary — and the assignor wants a reply in an hour.

This is the aggregation problem, and it is the use case that Calendar Mirror was really built for. Not one locked calendar copied into one other, but many calendars, none of which you control, all of which can stop you saying yes, collapsed into a single calendar that answers the question.

Referees have it badly. So do musicians with three ensembles, locum doctors on two agency rosters, contractors juggling site schedules, and anyone whose week is assembled from other people’s feeds. The information exists. It is just never in one place at the moment you need it.

Eight pairs, one destination

Two pairs can share a destination — and so can eight. Each pair tags only its own copies, so they never fight over each other’s events, and anything you add to the destination by hand is left alone. Point every calendar that can block you at one calendar called Conflicts, and that one calendar becomes the only thing you have to look at.

A real one, from the author’s own Mac — eight pairs, all writing into Reffing Conflicts:

Eight sources, eight sets of rules, one calendar. Before accepting anything you look at Reffing Conflicts, and that is the whole decision.

Give each source its own rules

The point of doing this pair by pair, rather than subscribing to everything in one app, is that each source gets treated differently:

  1. Feeds you can’t edit get filters. A club calendar publishes every team; keep only titles containing your child’s team name, drop the all-day notices, and skip anything the organiser canceled. A tag would be useless here — you cannot write notes into a feed you subscribe to.
  2. Calendars you own get tags. On your personal calendar, mark the events that are genuinely blocking and give that pair an include rule, or tag the ones to ignore and use a reject rule. Either way the noise never reaches the conflicts calendar.
  3. Choose how much detail each one carries. Games can come across in full, so you can see the kickoff and the ground. The family calendar can come across as tags only, or as plain busy blocks. It is set per pair, not once for everything.
  4. Turn on dedupe. When the same fixture reaches the calendar twice — your assignor’s feed and the club’s both list it — identical blocks collapse to one. Blocks that redact differently stay separate, because they are not the same information.
Eight feeds means eight things that can break. This is where the in-calendar warning earns its place: if any pair stops — a club changes its feed URL over the summer, an assigning system rotates a token — an all-day warning naming that pair appears in Reffing Conflicts itself. You find out on your phone, in the calendar you already check before accepting a game, rather than by accepting a game you can’t work.

Then point things at the result

Once one calendar holds every conflict, it is worth more than a glance. Share it with an assignor, or with the other parent doing the driving. Use it as the calendar your AskWhen.me page checks, so the times you offer are true against all eight sources and not just the one you remembered. Mirror it onward, busy-only, into a Google calendar if a scheduling tool needs to see it.

What this doesn’t fix

It aggregates; it does not merge. You get one calendar holding copies of everything, not one event per real-world commitment — two different fixtures at the same hour remain two blocks, which is what you want when deciding whether to accept a third. Attendees never come across, so a copied game does not carry the rest of the crew. And every source is still someone else’s feed: if a club publishes a fixture change late, your conflicts calendar learns about it exactly as late as you would have.

Get Calendar Mirror — $2.99 What it does

One purchase covers iPhone, iPad and Mac. No accounts, no ads, nothing collected. macOS 14 or iOS 17 and up. The Mac version is also free to build from source.

More use cases