Appearance
CalDAV and CardDAV sync
Contacts and calendars in Kancil are not an import. They are live views onto CardDAV and CalDAV servers you connect, which is why your phone shows the same data without Kancil being involved.
The model
You add an account — a server URL and credentials — and Kancil discovers the collections on it. You then choose which of those to sync: which address books, which calendars. Anything you do not select is left alone.
That two-step matters. A DAV account often carries collections you do not want in a work tool — a shared family calendar, a birthdays list generated by something else. Selecting per collection means Kancil holds only what you pointed it at.
Configure them in Contacts (CardDAV) and Calendar (CalDAV). Since the two servers are usually the same box with the same credentials, CalDAV setup offers Copy from CardDAV rather than making you retype it.
Identifiers
A DAV item is addressed by the pair of its collection and its uid — a uid is only unique within its collection. This surfaces throughout Kancil: contact and event URLs carry both parts, and so do the API paths. See Conventions.
The practical consequence: moving a contact between address books changes its identity. Kancil has a dedicated move action for exactly that reason, rather than leaving you to delete and recreate.
The calendar window
CalDAV accounts carry days past and days future settings. Kancil syncs events inside that window and not outside it.
This is a deliberate bound, not a limitation to work around. Calendars accumulate for years, most of it irrelevant, and a wide window makes every sync slower for data nobody looks at. Widen it when you need history; the next sync fills it in.
People
Underneath contacts sits a second, quieter concept: a person. A contact card belongs to you and lives in your address book. A person is the shared identity behind it, so when two people on the instance each have a card for the same human, records can point at one person rather than at two unrelated cards.
You rarely interact with a person directly. It appears when you follow a link to someone whose card you do not have — you get their shared person record instead of a dead end, and if you do have them in your own address book, Kancil sends you to your own card.
People exist only where they are needed: one is created when a contact is first linked to something. A contact you have never linked has no person behind it.
When sync fails
The last sync time is shown per account, and failures surface on the dashboard rather than only in settings. Editing a connection requires re-entering the password — Kancil never sends a stored credential back to the browser.