Family Calendar

Family Calendar

The shared family calendar in FamilyHub is powered by Radicale, a self-hosted CalDAV server. It is the single source of truth for all family events. Personal calendars (Proton, Google) are not replaced — FamilyHub adds a shared layer on top.

What Goes on the Family Calendar

Family events are things that affect the whole household:

  • Kids' sports practice (e.g., Louen's voetbaltraining)
  • Dentist and doctor appointments
  • Birthdays and family gatherings
  • School holidays and closures
  • Anything that needs to be visible to everyone

Adding Events

There are four ways to add events:

  1. FamilyHub PWA — tap + in the Calendar screen and fill in the event form
  2. AI text — type "voeg tandarts toe volgende dinsdag 10:00"
  3. AI voice — tap the mic and say it out loud
  4. Phone calendar app — via CalDAV sync (see below)

Events have a title, start and end time, optional location, all-day flag, and support standard recurrence rules.

Assigning to Family Members

When creating or editing an event, you can assign it to one or more family members. Assigned events appear in the per-person view below the weekly calendar next to the correct family member. Unassigned events appear under "Everyone" — useful for shared events like vacations or family gatherings.

You can also assign via the AI assistant: "add dentist for Lisa next Tuesday at 10:00".

Recommended Workflow: Migrating from Your Existing Calendar

Want to move your existing (shared) calendar to FamilyHub? Follow these steps:

  1. Export your current calendar as a .ics file:
    • Google Calendar: Settings → choose the calendar → Export calendar (ZIP file with .ics)
    • Apple Calendar (Mac): Right-click the calendar → Export → save as .ics
    • Outlook: Calendar → File → Save as Calendar → save as .ics
  2. Import into FamilyHub via Calendar → Import → File. Duplicates are automatically skipped.
  3. Subscribe your calendar app to FamilyHub (see Phone Sync below). This way all FamilyHub events automatically appear on your phone.
  4. Disable the old calendar in your calendar app to prevent duplicates. In Google Calendar: uncheck the old calendar in the left column. In Apple Calendar: uncheck the old calendar via the checkbox.

Result: All family members now manage events via FamilyHub and see them automatically in their own calendar app. New events can be created in FamilyHub, via the AI assistant, or directly in your phone's calendar app — with CalDAV sync, events added in Google Calendar or Apple Calendar automatically appear in FamilyHub too.

Importing Events

You can import events from:

  • ICS files — upload a .ics file directly in the calendar view
  • ICS URLs — paste a URL to an ICS feed and FamilyHub will import the events

You can also export your full family calendar as an ICS file for backup or sharing.

Phone Sync: CalDAV (Read/Write)

Add Radicale as an additional CalDAV account on your phone for full read/write access.

iOS

  1. SettingsCalendarAccountsAdd AccountOtherAdd CalDAV Account
  2. Enter your FamilyHub server, username, and password
  3. Toggle Calendars on → Save

Android (DAVx5)

  1. Install DAVx5 from the Play Store
  2. Open DAVx5 → +Login with URL
  3. Enter the CalDAV URL and your credentials
  4. Select the family calendar → Refresh

Events added from the phone appear in FamilyHub within seconds. Events added in FamilyHub appear on the phone on the next sync cycle.

Phone Sync: ICS Subscription (Read-Only)

For a read-only overlay inside your existing personal calendar app:

  • Proton Calendar → Settings → Calendars → Other calendars → Add calendar from link → paste ICS URL
  • Google Calendar → Other calendars → From URL → paste ICS URL

The ICS subscription URL is available in Admin > Services > CalDAV > Subscription. It includes a unique token in the path for authentication (Proton and Google can't send custom headers). If the token is compromised, a family admin can regenerate it.

Note: ICS subscriptions refresh on the provider's schedule — Proton every 8-16 hours, Google roughly every 12 hours. For real-time visibility, use CalDAV.

Hub Display View

The hub display shows:

  • All-day events — as banners at the top of each day column
  • Timed events — as a simple list per day, ordered by start time
  • Range — today plus the next 6 days (one week at a glance)

Today's events are emphasized. The display updates via WebSocket whenever an event is created, updated, or deleted.

AI Commands

CommandAction
"voeg tandarts toe volgende dinsdag 10:00"Creates event: Tandarts on next Tuesday at 10:00
"voeg voetbaltraining Louen toe vrijdag 17:00 tot 18:30"Creates event with end time
"verplaats de tandarts naar woensdag"Updates the event's date
"wanneer is Louen's volgende voetbaltraining?"Queries the calendar and responds with the date
"verwijder de tandarts afspraak van volgende week"Removes the matching event

Privacy

All calendar data is stored in Radicale on your own server. The shared calendar is only accessible to authenticated family members. The ICS subscription feed uses a unique token that can be rotated at any time.