> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ruber.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Contacts

> The contact record, groups, custom fields, photos, and the history Ruber computes from your own mail. Includes the missing importer.

## Read this first: there is no importer

Nothing in Ruber reads a vCard, speaks CardDAV, or takes a CSV, and nothing
writes one out. **An address book you keep elsewhere stays elsewhere.**

It is the first thing worth knowing and the most likely reason Contacts will not
suit you yet, so it is at the top rather than in a footnote.

The partial answer is below: the address book fills itself in from people you
already write to, so it is less empty than it sounds.

## The record

Names are stored in parts rather than as one string with a space in it: **given**,
**middle**, **family**, plus a **nickname** and **pronouns**. Somebody with two
family names, or a name that does not split the way English expects, is stored
correctly rather than nearly.

Alongside that: several email addresses and several phone numbers, each
labelled; postal addresses; organisation and job title; a birthday; free-text
notes; and your own custom fields for whatever the form did not anticipate.

Phone numbers are formatted for the country they belong to. You can set the dial
code Ruber assumes so the common case needs no thought.

## History, computed from your own mail

Every contact carries seven figures:

|                |                                   |
| -------------- | --------------------------------- |
| Messages       | how many, in total                |
| Conversations  | how many threads                  |
| Received       | how many they sent you            |
| Sent           | how many you sent them            |
| First contact  | when it started                   |
| Last contact   | the most recent, either direction |
| Last from them | the most recent inbound           |

**All of it comes from your own message index.** Ruber does not look anyone up,
does not buy a profile, and does not call an enrichment service. What you see
about a person is what passed through your mailbox and nothing else.

The trade is honest: someone you have never emailed has no history at all. Most
address books fill that gap by asking a third party who the person is. This one
does not, and the blank is the shape of that decision.

## The address book fills itself in

People you correspond with regularly appear without being added, derived from
the same index. An address book that holds only what you remembered to type is
one you stop trusting after a month.

## Groups, stars and photos

Groups carry a colour, so a list you use daily is recognisable before you have
read it. Star the handful you actually reach for.

A photo is stored in your own object storage and served through the app rather
than a public bucket URL — a contact photo is not a link that anyone who guesses
it can open. Photos need object storage configured; without it, everything else
about the contact works.

## Birthdays

Store a birthday and Ruber can remind you. Like the other reminders in the
product, delivery depends on the background job runner being connected on your
deployment — so confirm one arrives before trusting it with March.

## Settings

Sort order, what the second line of a row shows, whether opening a contact jumps
straight to the first entry, and the assumed dial code. Set once; every device
follows.

## What contacts do not do

**No import and no export.** Covered at the top, and repeated here because it is
the one that decides whether this fits.

**No shared team directory.** Contacts are yours. There are no per-contact
permissions and no way to hand a list to a colleague; groups organise your own
address book, not somebody else's.

**No history before your first message.** The direct cost of not looking anybody
up.
