hypercal 2.2.1 Contacts: an address book that syncs with CardDAV, and a birthdays calendar built from it. Also calendar and contact files opened from other apps, typed times in the editor, a full-page Settings, easier resizing on touch, and fixes to CalDAV sync and live updates. **Contacts.** Open the account menu, then Contacts, or press Shift+C. The page lists your contacts A to Z, with the next 30 days' birthdays and anniversaries at the top, and searches names, emails, phone numbers and labels. A contact holds several emails, phones, websites and addresses, dates with or without a year, a photo, labels and notes. The sidebar shows the coming week's birthdays. Import and export as CSV or vCard, with a preview before an import. The app finds likely duplicates and merges them. Contacts are part of a whole-account .hypercalendar backup. **CardDAV.** Link an address book to a CardDAV server such as Nextcloud, Radicale or Baïkal in Settings, Contacts, and it syncs both ways. Edits made on both sides are merged field by field. The other direction works too: switch on "Share over CardDAV" for a book, and DAVx5, iOS or Thunderbird can sync it from hypercal on the same /dav address and app passwords as your calendars. **Birthdays calendar.** Add it from the "+" menu in the calendar list. It shows birthdays, anniversaries or other dates from the books you pick, says how old someone turns, and can remind you the day before. You change a birthday on the contact, so the calendar itself is read-only. Database migration 0035 adds the tables for contacts and address books. **Files from other apps.** On Android, the app is offered under "Open with" and in the share sheet for .ics and .vcf files. The desktop app opens .vcf files too, and dropping one on the calendar imports it. **Editor and Settings.** - With a mouse, the start, end and due times are typed straight into the field, with a list of quarter hours. - Changing a recurring event asks which events to change with a radio group and OK, so one stray tap no longer rewrites the whole series. - Settings is a full page, and the open section is in the address, so a reload keeps it and it can be linked to. **Week view.** A selected event has an outline in the theme's accent colour. On touch, long-press and release an event to show its resize knobs, on opposite corners. The grid scrolls to show both, and when an edge is off screen its knob stays at the edge of the grid. An edge now moves as far as your finger does, instead of jumping to it. **Polls.** Times are larger and easier to read. The clock is 24-hour in Europe, with a switch. Drag across slots to answer them all at once, and meters show how the votes stand. **Privacy.** A new privacy page says what the app stores and which connections it can make. About links to it. The desktop app's check for new versions is now off by default; turn it on in Settings, General. **Fixed.** - Live updates could stop reaching your other open tabs after one of them closed or reconnected. - CalDAV sync now fetches only what changed since the last pass, and edits made on both sides reach the server instead of staying local. - Keyboard shortcuts work in the Android app with a hardware keyboard, and Escape closes a dialog without also going back. - Temperatures and rain are readable in the weather view on phones. - The favicon's date fills the tile. - The container image is rebuilt on current Debian packages, which fixes CVE-2026-103111 in libpcre2.