The schema for contacts records, used by Evolution and Akonadi

Main Document

{
    "_id": string - unique ID of this document, # internal to CouchDB
    "_rev": string - revision_for_this_document, #internal to CouchDB
    "record_type": "http://www.freedesktop.org/wiki/Specifications/desktopcouch/contact",
    "first_name": string - First name of the contact,
    "middle_name": string - Middle name of the contact,
    "last_name": string - Last name of the contact,
    "title": string - Title of the contact,
    "suffix": string - Suffix of the contact,
    "birth_date": string - Birth date in YYYY-MM-DD format,
    "nick_name": string - Nick name,
    "spouse_name": string - Spouse name,
    "wedding_date": string - Wedding/Anniversary date in YYYY-MM-DD format,
    "company": string - Company name,
    "department": string - Department name,
    "job_title": string - Job title,
    "manager_name": string - Manager name,
    "assistant_name": string - Assistant name,
    "office": string - Office name,
    "notes": string - Notes,
    "addresses": mergeable list of {
       {
           "city": string - City name,
           "description": string - "work", "home" or "other",
           "address1": string - Street name,
           "address2": string - Address extension,
           "state": string - State / Region name,
           "country": string - Country name,
           "postalcode": string - Postal code
       }
    },
    "phone_numbers": mergeable list of {
       {
           "description": string - "home", "mobile", "home fax", "work", "car", "pager", "work fax", "assistant", "callback", "company", "other", "other fax", "primary", or "telex"
           "number": string - Phone number
       }
    },
    "email_addresses": mergeable list of {
       {
           "description": string - "work", "home" or "other"
           "address": string - Email address
       }
    },
    "urls": mergeable list of {
       {
           "description": string - "blog" or "home page"
           "address": string - URL
       }
    },
    "im_addresses": mergeable list of {
        {
            "address": string - IM user ID
            "description": string - Description
            "protocol": string - Protocol (aim|gadu-gadu|groupwise|icq|irc|jabber|msn|skype|yahoo)
        }
    },
    "application_annotations": {
       "application_name": { ... }
       ...stuff specific to applications, nobody should rely on these...
    },
}

Attachments

  • photo: The contact photo. Maximum size 100k. MIME type image/*

Explanation

  • Mergeable lists are lists of JSON objects, each of which has a unique identifier
  • Dates should be represented in YYYY-MM-DD format