📖 Chapter 06 — Calendar & Contacts
The family calendar that everyone actually uses. Plus contacts that sync everywhere.
Learning Objectives
- Set up Nextcloud with shared family calendars and contacts
- Connect iOS, macOS, Android, and Windows to CalDAV and CardDAV
- Replace Google Calendar and Google Contacts without losing shared family coordination
- Decide between "one shared calendar" and "multiple calendars with selective sharing"
Why Nextcloud
Nextcloud is a self-hosted productivity platform. It does:
- Files: a Google Drive replacement (file sync, sharing, mobile access)
- Calendar: CalDAV-compatible calendars, with sharing, multiple calendars per user, mobile access
- Contacts: CardDAV-compatible address book, shared across users
- Photos: a lighter photo app than Immich (but Immich is still better for serious photo use)
For a family, the killer feature is the calendar: a shared family calendar that everyone can read and write to, with events syncing to every phone automatically. No more "what's happening this weekend?" WhatsApp messages.
Install Nextcloud
From Volume 1, Chapter 08: Nextcloud is in the apps catalog. Install it with the standard TrueNAS app settings. Storage location: /mnt/tank/Apps/nextcloud. Database: the default SQLite is fine for a family of 4; PostgreSQL is better if you expect to use the file-sync features heavily.
Initial admin setup
- Open Nextcloud at
http://<nas>:<port>. - Create the admin user (separate from your TrueNAS admin).
- Set the data folder:
/mnt/tank/Apps/nextcloud/data. - Complete the setup wizard.
Create the family users
In Nextcloud, go to Users and create one account per family member. Use the same usernames as your TrueNAS users (consistency helps).
Set a reasonable quota (10-50 GB is plenty for calendar/contacts; if you're using the file sync too, more). The conversation's recommendation: 50 GB per user, more if you're using Nextcloud as your primary file sync.
Create the family calendar
Logged in as the admin (or any user), go to Calendar. Create a new calendar called Family. In the calendar settings:
- Share with all family members. Give each user read-write access. Now everyone's events are visible to everyone.
- Color: pick something distinctive. The family calendar is the most-shared one, so it should stand out in everyone's view.
Now, every family member can add events to the Family calendar. Everyone's events appear on everyone's phone. No more "did you book the plumber?"
Sub-calendars for separation
Beyond the family calendar, common sub-calendars:
- Personal (per user): each family member has their own calendar. Events on this calendar are private to that user.
- Work (TK only): work events, syncing with work calendar if needed.
- School (per child): school events, shared between parents.
- Trips: family trips, everyone sees them.
Each user can subscribe to the calendars they want to see. Most families end up with: Family + Personal + Work/School. That's it. Don't over-engineer.
Create the shared contacts
Nextcloud's Contacts app lets you have multiple address books. Create:
- Family contacts: shared with all family members. Grandparents, cousins, family doctor, school, neighbors, the plumber who finally showed up.
- Personal contacts (per user): private to each user.
When grandma calls, every family member's phone shows "Grandma" instead of a number. When the plumber calls back, the family has his number even if only one person originally called him.
Connecting devices: the protocols
Nextcloud's calendar and contacts use two open standards:
- CalDAV: for calendars. Used by Apple Calendar, Google Calendar (under the hood), Thunderbird, and many other clients.
- CardDAV: for contacts. Used by Apple Contacts, Google Contacts (under the hood), Thunderbird, and many other clients.
The benefit of open standards: every device that supports calendars or contacts supports CalDAV and CardDAV. You don't need to install a "Nextcloud app" on your phone — your phone's built-in calendar and contacts apps just work.
From iOS / iPadOS
- Settings → Calendar → Accounts → Add Account → Other → Add CalDAV Account.
- Server:
https://<your-nas>/nextcloud/remote.php/dav(or whatever your Nextcloud URL is). - Username and password: the Nextcloud user's credentials.
- Save. iOS will discover the calendars and contacts on the Nextcloud server.
- Open the Calendar app. The Family calendar should be visible. Enable it for sync.
From macOS
- System Settings → Internet Accounts → Add Account → Add Other Account → CalDAV Account.
- Same URL, username, password.
- Choose which calendars and contacts to sync.
From Android
Android's built-in calendar/contacts apps support CalDAV/CardDAV but not directly. The recommended path:
- Install DAVx⁵ (paid app, ~$5) or OpenSync (free).
- Configure the CalDAV/CardDAV account pointing at your Nextcloud URL.
- DAVx⁵ syncs to the system calendar and contacts apps.
Yes, this is a third-party app. The alternative is to use Nextcloud's own mobile app for calendar, but the system integration isn't as smooth as native.
From Windows
- Use Thunderbird with the Lightning calendar add-on and the CardBook contacts add-on. Both support CalDAV and CardDAV natively.
- Or use the Windows 11 Mail and Calendar app, which has limited CalDAV support.
Most families don't bother with Windows calendar sync; the desktop is usually a work machine with its own calendar system.
Migrating from Google Calendar / Contacts
Calendar
- On a computer, open Google Calendar in a browser.
- For each calendar you want to migrate: Settings → Export. You get a .ics file.
- In Nextcloud, open Calendar → Import. Select the .ics file. Events import with their original dates, times, and (if you set them) colors.
- Repeat for each Google calendar.
- On phones, switch from Google Calendar to the CalDAV calendar (so new events go to Nextcloud, not Google).
Contacts
- On a computer, open Google Contacts in a browser.
- Export → "Export as vCard" or similar. You get a .vcf file.
- In Nextcloud, open Contacts → Import. Select the .vcf file. Contacts import with their original photos and notes.
- On phones, switch from Google Contacts to the CardDAV contacts (so new contacts go to Nextcloud).
Same as with Immich: do the migration on a weekend, give it a month to make sure everything synced, then disable the Google integration on your phone.
The "TK can always see the family calendar" pattern
By default, calendars you create are private. To make the family calendar shared, you explicitly share it. Two patterns:
Pattern A: One shared family calendar, each user has personal
Each family member subscribes to the Family calendar (read-write) and has their own personal calendar (private). The Family calendar is for events everyone needs to know about. Personal is for everything else.
Best for: small families with one or two shared calendars' worth of events per week.
Pattern B: Multiple shared calendars
Family, Kids, School, Work, Trips — separate calendars, each shared with whoever needs them. More granular, more flexibility, more complexity. Best for: families with complex schedules (multiple kids in different schools, frequent travel, complex work patterns).
For most families, Pattern A is plenty. Pattern B is for when A isn't enough.
The fail mode: contacts not syncing
The single most common issue with Nextcloud contacts: edits made on the phone don't appear on the server, or vice versa. Causes:
- The phone is using the wrong account (Google contacts instead of the Nextcloud CalDAV/CardDAV account)
- Sync is disabled in the account settings
- The DAVx⁵ app on Android is in "battery save" mode and not syncing in the background
The fix is always one of these. The conversation's recommendation: if contacts aren't syncing, check which account the phone is using first.
Engineering Note
The shared family calendar is one of the highest-leverage things the NAS does. It's a small app. It doesn't take much storage. It doesn't need much CPU. But it removes a category of friction from family life that is constant: "what's happening?" "When is the dentist appointment?" "Is TK picking up the kids or am I?" Every family that has one wishes they'd had one earlier. Every family that doesn't have one has the WhatsApp "wait, when is X?" thread that never goes away.
The setup is 30 minutes. The payoff is years.
Summary
Nextcloud is the family calendar and contacts platform. CalDAV and CardDAV are open standards that work with every device. One shared family calendar, one personal calendar per user, one shared contacts book, one personal contacts book per user. Migrate from Google Calendar/Contacts on a weekend. The setup is small; the payoff is years of "the family actually knows what's happening."
Checklist
- ⬜ Install Nextcloud
- ⬜ Create one Nextcloud user per family member
- ⬜ Create a shared Family calendar, share it with everyone
- ⬜ Create a shared Family contacts book, share it with everyone
- ⬜ Connect every family member's phone and laptop to the CalDAV/CardDAV account
- ⬜ Migrate from Google Calendar and Google Contacts
- ⬜ Disable Google Calendar/Contacts sync on phones (do this last, after a month of Nextcloud-only)
Looking Ahead
Chapter 07 is the last chapter of Volume 2. It covers extending the NAS to friends: how to safely give non-family members access to specific shares, time-limited sharing, the patterns that keep the family system secure while being generous.