Keeping up with calendar changes
An imported event can repeat, move, change time zone or be canceled. I keep track of event identity and exceptions to recurring events, so a refresh updates the right occurrence without adding duplicates.
Family plans are spread across individual calendars, school feeds and conversations. It’s hard to see the whole week in one place, and a shared display stops being useful if events are missing, duplicated or out of date.
I built a shared calendar for our kitchen iPad, with a quick way to add events from a phone. The app imports iCal feeds and matches updates to the events already saved.
Events added from a phone go into the same database. Agenda, week and month views show who each event belongs to, whether it came from a feed or was added locally.
The architecture, at a glance.
Subscribed iCal sources and school events
Recurrence, exceptions, timezones and duplicates
Neon Postgres plus local events and hidden items
Kitchen iPad display and mobile event entry
Phone edits update the shared calendar. Subscribed calendars are read-only imports that refresh separately.
An imported event can repeat, move, change time zone or be canceled. I keep track of event identity and exceptions to recurring events, so a refresh updates the right occurrence without adding duplicates.
If someone removes an imported event from the family view, it shouldn’t come back on the next sync. I store that choice separately from the source event so refreshes respect it.
The kitchen display needs to be easy to read at a glance. On a phone, adding an event needs to be quick. Both use the same event store, with an interface suited to each screen.
I added a photo carousel that cycles through family photos on the kitchen display. It’s a small thing, but seeing a familiar moment as you walk past brings a smile to an otherwise busy day.