Sync a Tapestry view to Google Calendar (and what carries over)

Some people make Tapestry their main calendar, with colors, categories, who's-involved, and birthday ages. Others just want a clean, merged feed dropped back into the Google Calendar they already live in. Both work great. This guide covers how to subscribe a view into Google, exactly what the feed does and doesn't carry, and how to build a view that still reads well in Google without Tapestry's richer styling.

Two ways to use Tapestry

It helps to be clear about which one you're doing, because you optimize a view differently for each:

  • As your primary calendar. You open Tapestry itself. You get per-event colors, color schemes per view, the Who/What filters, category and person labels, and the live "(age)" on birthdays. That's the full picture.
  • As a feed into Google (or Apple/Outlook). You subscribe a view as a one-way calendar feed. Perfect when your partner lives in Google Calendar and just wants the merged, curated schedule to appear there.

A real-world split

In a lot of households one person makes Tapestry their main calendar while the other just wants a tidy feed in Google. You don't have to pick. Keep Tapestry rich for yourself, and hand an optimized feed to whoever lives in Google.

Subscribe a view into Google Calendar

  1. Copy the view's subscription link

    In Tapestry, open the view you want to share and copy its calendar subscription (ICS) link.

  2. Add it in Google Calendar

    On Google Calendar (desktop web), in the left sidebar find Other calendars, click the +, choose From URL, paste the link, and click Add calendar. It shows up under "Other calendars."

  3. Give it a name and color in Google

    Hover the new calendar → options → Settings, and pick a color and display name. Important: that color applies to the whole feed. More on why in a second.

Heads up: Google refreshes on its own schedule

Google controls how often it re-fetches a subscribed URL, sometimes only every several hours. That's a Google limitation, not Tapestry; the feed itself updates within minutes. If you need an instant check, open the ICS link directly in a browser.

What carries over, and what doesn't

A subscription is plain iCalendar data. We pack as much of Tapestry's richness as the format allows into fields every app understands, so more comes through than you might expect.

Carries over (everywhere, including Google):

  • Which events appear. Your chosen sources, minus anything your rules exclude or hide.
  • The event title, including emoji and any rule-driven text changes (renames, prefixes, find-and-replace).
  • Birthday ages. We calculate the age for each year and fold it into the title, so "🎂 Mia's Birthday (9)" reads correctly on every calendar.
  • Who the event is for. Assigned people are listed in the event's notes (e.g. "With: Lily, Sam").
  • Date & time. Daylight-saving-correct, with recurring events expanded into real instances.
  • Location and the description / notes.

Carries to some apps:

  • Per-event color. We send a standard color with each event, and apps that support per-event colors (Apple Calendar and family) use it. Google is the exception: it paints a whole subscribed feed in one color you pick and ignores per-event colors.
  • Categories. Sent as a standard CATEGORIES tag; Apple surfaces it (in search, etc.), Google doesn't display it.

Doesn't carry:

  • Color schemes and the Who/What filter pills. Those are live, interactive parts of Tapestry itself, not something a static feed can express.

Optimize a view for Google: put the meaning in the title

One thing stands out for Google specifically: because it flattens a subscribed feed to a single color, the title is your main tool for telling events apart there. (On Apple, per-event colors already do that job, though a clear title never hurts.)

  1. Prefix names with a rule

    Add a rule scoped to the view: Prepend "Lily: " to her sources. "Soccer Game" becomes "Lily: Soccer Game" in Google, so you can tell whose event it is without any color. Do the same per kid or per category.

  2. Use emoji as your color

    Emoji travel in the title, so they're the one bit of visual coding that survives even in Google. Prepend one with a rule (Prepend "⚽ ") or set an emoji on the event: ⚽ soccer, 🎻 music, 🎂 birthdays. At a glance in Google, the emoji does the job color can't.

  3. Curate hard

    You can't lean on filters once it's in Google, so trim the view to just what matters (exclude practices, hide the noise) so the feed is clean on arrival. (The Kids Activities guide shows the exclude/tag recipe.)

  4. Make titles self-explanatory

    If a source names events cryptically ("Practice — Field 3"), use a rename or find-and-replace rule so they read well on their own, since there's no extra context in Google.

  5. Pick one good color in Google

    Since the whole feed is one color, choose a Google color that sets it apart from your own events, e.g. all of "Kids Activities" in one distinct shade.

A clean "Google feed" recipe

For the partner who just wants it in Google:

  • One view with only the sources they care about.
  • Rules to exclude the noise (practices, half-days, internal-only events).
  • A Prepend rule per kid/category, plus an emoji, so every event is self-describing.
  • Subscribe in Google and give it one distinct color.

The result is a tidy, self-labeling feed that keeps itself up to date, no colors or labels required. Meanwhile you can keep the full-color, fully-filtered version for yourself inside Tapestry.