EContact

## EContact EContact — An individual contact in an addressbook. |

## Synopsis

                        EContact;
    enum                EContactField;
                        EContactName;
                        EContactGeo;
                        EContactPhoto;
                        EContactAddress;
                        EContactDate;
                        EContactCert;
    EContact*           e_contact_new                       (void);
    EContact*           e_contact_new_from_vcard            (const gchar *vcard);
    EContact*           e_contact_duplicate                 (EContact *contact);
    gpointer            e_contact_get                       (EContact *contact,
                                                             EContactField field_id);
    gconstpointer       e_contact_get_const                 (EContact *contact,
                                                             EContactField field_id);
    void                e_contact_set                       (EContact *contact,
                                                             EContactField field_id,
                                                             gconstpointer value);
    EContactDate *      e_contact_date_new                  (void);
    EContactDate *      e_contact_date_from_string          (const gchar *str);
    gchar *             e_contact_date_to_string            (EContactDate *dt);
    gboolean            e_contact_date_equal                (EContactDate *dt1,
                                                             EContactDate *dt2);
    EContactName *      e_contact_name_new                  (void);
    gchar *             e_contact_name_to_string            (const EContactName *name);
    EContactName *      e_contact_name_from_string          (const gchar *name_str);
    EContactName *      e_contact_name_copy                 (EContactName *n);
    void                e_contact_date_free                 (EContactDate *date);
    void                e_contact_name_free                 (EContactName *name);
    void                e_contact_photo_free                (EContactPhoto *photo);
    void                e_contact_geo_free                  (EContactGeo *geo);
    void                e_contact_address_free              (EContactAddress *address);
    const gchar *       e_contact_field_name                (EContactField field_id);
    const gchar *       e_contact_pretty_name               (EContactField field_id);
    EContactField       e_contact_field_id                  (const gchar *field_name);
    EContactField       e_contact_field_id_from_vcard       (const gchar *vcard_field);
    void                e_contact_cert_free                 (EContactCert *cert);
    GList*              e_contact_get_attributes            (EContact *contact,
                                                             EContactField field_id);
    void                e_contact_set_attributes            (EContact *contact,
                                                             EContactField field_id,
                                                             GList *attributes);
    const gchar *       e_contact_vcard_attribute           (EContactField field_id);

## Object Hierarchy

      GObject
       +----EVCard
             +----EContact

## Properties

      "Rev"                      gchar*                : Read / Write
      "address"                  gpointer              : Read / Write
      "address-home"             EContactAddress*      : Read / Write
      "address-label-home"       gchar*                : Read / Write
      "address-label-other"      gchar*                : Read / Write
      "address-label-work"       gchar*                : Read / Write
      "address-other"            EContactAddress*      : Read / Write
      "address-work"             EContactAddress*      : Read / Write
      "anniversary"              EContactDate*         : Read / Write
      "assistant"                gchar*                : Read / Write
      "assistant-phone"          gchar*                : Read / Write
      "birth-date"               EContactDate*         : Read / Write
      "blog-url"                 gchar*                : Read / Write
      "book-uri"                 gchar*                : Read / Write
      "business-fax"             gchar*                : Read / Write
      "business-phone"           gchar*                : Read / Write
      "business-phone-2"         gchar*                : Read / Write
      "callback-phone"           gchar*                : Read / Write
      "caluri"                   gchar*                : Read / Write
      "car-phone"                gchar*                : Read / Write
      "categories"               gchar*                : Read / Write
      "category-list"            gpointer              : Read / Write
      "company-phone"            gchar*                : Read / Write
      "email"                    gpointer              : Read / Write
      "email-1"                  gchar*                : Read / Write
      "email-2"                  gchar*                : Read / Write
      "email-3"                  gchar*                : Read / Write
      "email-4"                  gchar*                : Read / Write
      "family-name"              gchar*                : Read / Write
      "fburl"                    gchar*                : Read / Write
      "file-as"                  gchar*                : Read / Write
      "full-name"                gchar*                : Read / Write
      "geo"                      EContactGeo*          : Read / Write
      "given-name"               gchar*                : Read / Write
      "home-fax"                 gchar*                : Read / Write
      "home-phone"               gchar*                : Read / Write
      "home-phone-2"             gchar*                : Read / Write
      "homepage-url"             gchar*                : Read / Write
      "icscalendar"              gchar*                : Read / Write
      "id"                       gchar*                : Read / Write
      "im-aim"                   gpointer              : Read / Write
      "im-aim-home-1"            gchar*                : Read / Write
      "im-aim-home-2"            gchar*                : Read / Write
      "im-aim-home-3"            gchar*                : Read / Write
      "im-aim-work-1"            gchar*                : Read / Write
      "im-aim-work-2"            gchar*                : Read / Write
      "im-aim-work-3"            gchar*                : Read / Write
      "im-gadugadu"              gpointer              : Read / Write
      "im-gadugadu-home-1"       gchar*                : Read / Write
      "im-gadugadu-home-2"       gchar*                : Read / Write
      "im-gadugadu-home-3"       gchar*                : Read / Write
      "im-gadugadu-work-1"       gchar*                : Read / Write
      "im-gadugadu-work-2"       gchar*                : Read / Write
      "im-gadugadu-work-3"       gchar*                : Read / Write
      "im-groupwise"             gpointer              : Read / Write
      "im-groupwise-home-1"      gchar*                : Read / Write
      "im-groupwise-home-2"      gchar*                : Read / Write
      "im-groupwise-home-3"      gchar*                : Read / Write
      "im-groupwise-work-1"      gchar*                : Read / Write
      "im-groupwise-work-2"      gchar*                : Read / Write
      "im-groupwise-work-3"      gchar*                : Read / Write
      "im-icq"                   gpointer              : Read / Write
      "im-icq-home-1"            gchar*                : Read / Write
      "im-icq-home-2"            gchar*                : Read / Write
      "im-icq-home-3"            gchar*                : Read / Write
      "im-icq-work-1"            gchar*                : Read / Write
      "im-icq-work-2"            gchar*                : Read / Write
      "im-icq-work-3"            gchar*                : Read / Write
      "im-jabber"                gpointer              : Read / Write
      "im-jabber-home-1"         gchar*                : Read / Write
      "im-jabber-home-2"         gchar*                : Read / Write
      "im-jabber-home-3"         gchar*                : Read / Write
      "im-jabber-work-1"         gchar*                : Read / Write
      "im-jabber-work-2"         gchar*                : Read / Write
      "im-jabber-work-3"         gchar*                : Read / Write
      "im-msn"                   gpointer              : Read / Write
      "im-msn-home-1"            gchar*                : Read / Write
      "im-msn-home-2"            gchar*                : Read / Write
      "im-msn-home-3"            gchar*                : Read / Write
      "im-msn-work-1"            gchar*                : Read / Write
      "im-msn-work-2"            gchar*                : Read / Write
      "im-msn-work-3"            gchar*                : Read / Write
      "im-skype"                 gpointer              : Read / Write
      "im-skype-home-1"          gchar*                : Read / Write
      "im-skype-home-2"          gchar*                : Read / Write
      "im-skype-home-3"          gchar*                : Read / Write
      "im-skype-work-1"          gchar*                : Read / Write
      "im-skype-work-2"          gchar*                : Read / Write
      "im-skype-work-3"          gchar*                : Read / Write
      "im-yahoo"                 gpointer              : Read / Write
      "im-yahoo-home-1"          gchar*                : Read / Write
      "im-yahoo-home-2"          gchar*                : Read / Write
      "im-yahoo-home-3"          gchar*                : Read / Write
      "im-yahoo-work-1"          gchar*                : Read / Write
      "im-yahoo-work-2"          gchar*                : Read / Write
      "im-yahoo-work-3"          gchar*                : Read / Write
      "isdn-phone"               gchar*                : Read / Write
      "list"                     gboolean              : Read / Write
      "list-show-addresses"      gboolean              : Read / Write
      "logo"                     EContactPhoto*        : Read / Write
      "mailer"                   gchar*                : Read / Write
      "manager"                  gchar*                : Read / Write
      "mobile-phone"             gchar*                : Read / Write
      "name"                     EContactName*         : Read / Write
      "name-or-org"              gchar*                : Read
      "nickname"                 gchar*                : Read / Write
      "note"                     gchar*                : Read / Write
      "office"                   gchar*                : Read / Write
      "org"                      gchar*                : Read / Write
      "org-unit"                 gchar*                : Read / Write
      "other-fax"                gchar*                : Read / Write
      "other-phone"              gchar*                : Read / Write
      "pager"                    gchar*                : Read / Write
      "phone"                    gpointer              : Read / Write
      "photo"                    EContactPhoto*        : Read / Write
      "primary-phone"            gchar*                : Read / Write
      "radio"                    gchar*                : Read / Write
      "role"                     gchar*                : Read / Write
      "sip"                      gpointer              : Read / Write
      "spouse"                   gchar*                : Read / Write
      "telex"                    gchar*                : Read / Write
      "title"                    gchar*                : Read / Write
      "tty"                      gchar*                : Read / Write
      "video-url"                gchar*                : Read / Write
      "wants-html"               gboolean              : Read / Write
      "x509Cert"                 EContactCert*         : Read / Write

## Description

A convenient way of accessing the contact information in EVCard objects.

## Details

### EContact

    typedef struct _EContact EContact;

EContact has no publicly available members.

### enum EContactField

    typedef enum {

    	E_CONTACT_UID = 1,	 /* string field */
    	E_CONTACT_FILE_AS,	 /* string field */
    	E_CONTACT_BOOK_URI,      /* string field */

    	/* Name fields */
    	E_CONTACT_FULL_NAME,	 /* string field */
    	E_CONTACT_GIVEN_NAME,	 /* synthetic string field */
    	E_CONTACT_FAMILY_NAME,	 /* synthetic string field */
    	E_CONTACT_NICKNAME,	 /* string field */

    	/* Email fields */
    	E_CONTACT_EMAIL_1,	 /* synthetic string field */
    	E_CONTACT_EMAIL_2,	 /* synthetic string field */
    	E_CONTACT_EMAIL_3,	 /* synthetic string field */
    	E_CONTACT_EMAIL_4,       /* synthetic string field */

    	E_CONTACT_MAILER,        /* string field */

    	/* Address Labels */
    	E_CONTACT_ADDRESS_LABEL_HOME,  /* synthetic string field */
    	E_CONTACT_ADDRESS_LABEL_WORK,  /* synthetic string field */
    	E_CONTACT_ADDRESS_LABEL_OTHER, /* synthetic string field */

    	/* Phone fields */
    	E_CONTACT_PHONE_ASSISTANT,
    	E_CONTACT_PHONE_BUSINESS,
    	E_CONTACT_PHONE_BUSINESS_2,
    	E_CONTACT_PHONE_BUSINESS_FAX,
    	E_CONTACT_PHONE_CALLBACK,
    	E_CONTACT_PHONE_CAR,
    	E_CONTACT_PHONE_COMPANY,
    	E_CONTACT_PHONE_HOME,
    	E_CONTACT_PHONE_HOME_2,
    	E_CONTACT_PHONE_HOME_FAX,
    	E_CONTACT_PHONE_ISDN,
    	E_CONTACT_PHONE_MOBILE,
    	E_CONTACT_PHONE_OTHER,
    	E_CONTACT_PHONE_OTHER_FAX,
    	E_CONTACT_PHONE_PAGER,
    	E_CONTACT_PHONE_PRIMARY,
    	E_CONTACT_PHONE_RADIO,
    	E_CONTACT_PHONE_TELEX,
    	E_CONTACT_PHONE_TTYTDD,

    	/* Organizational fields */
    	E_CONTACT_ORG,		 /* string field */
    	E_CONTACT_ORG_UNIT,	 /* string field */
    	E_CONTACT_OFFICE,	 /* string field */
    	E_CONTACT_TITLE,	 /* string field */
    	E_CONTACT_ROLE,	 /* string field */
    	E_CONTACT_MANAGER,	 /* string field */
    	E_CONTACT_ASSISTANT,	 /* string field */

    	/* Web fields */
    	E_CONTACT_HOMEPAGE_URL,  /* string field */
    	E_CONTACT_BLOG_URL,      /* string field */

    	/* Contact categories */
    	E_CONTACT_CATEGORIES,    /* string field */

    	/* Collaboration fields */
    	E_CONTACT_CALENDAR_URI,  /* string field */
    	E_CONTACT_FREEBUSY_URL,  /* string field */
    	E_CONTACT_ICS_CALENDAR,  /* string field */
    	E_CONTACT_VIDEO_URL,      /* string field */

    	/* misc fields */
    	E_CONTACT_SPOUSE,        /* string field */
    	E_CONTACT_NOTE,          /* string field */

    	E_CONTACT_IM_AIM_HOME_1,       /* Synthetic string field */
    	E_CONTACT_IM_AIM_HOME_2,       /* Synthetic string field */
    	E_CONTACT_IM_AIM_HOME_3,       /* Synthetic string field */
    	E_CONTACT_IM_AIM_WORK_1,       /* Synthetic string field */
    	E_CONTACT_IM_AIM_WORK_2,       /* Synthetic string field */
    	E_CONTACT_IM_AIM_WORK_3,       /* Synthetic string field */
    	E_CONTACT_IM_GROUPWISE_HOME_1, /* Synthetic string field */
    	E_CONTACT_IM_GROUPWISE_HOME_2, /* Synthetic string field */
    	E_CONTACT_IM_GROUPWISE_HOME_3, /* Synthetic string field */
    	E_CONTACT_IM_GROUPWISE_WORK_1, /* Synthetic string field */
    	E_CONTACT_IM_GROUPWISE_WORK_2, /* Synthetic string field */
    	E_CONTACT_IM_GROUPWISE_WORK_3, /* Synthetic string field */
    	E_CONTACT_IM_JABBER_HOME_1,    /* Synthetic string field */
    	E_CONTACT_IM_JABBER_HOME_2,    /* Synthetic string field */
    	E_CONTACT_IM_JABBER_HOME_3,    /* Synthetic string field */
    	E_CONTACT_IM_JABBER_WORK_1,    /* Synthetic string field */
    	E_CONTACT_IM_JABBER_WORK_2,    /* Synthetic string field */
    	E_CONTACT_IM_JABBER_WORK_3,    /* Synthetic string field */
    	E_CONTACT_IM_YAHOO_HOME_1,     /* Synthetic string field */
    	E_CONTACT_IM_YAHOO_HOME_2,     /* Synthetic string field */
    	E_CONTACT_IM_YAHOO_HOME_3,     /* Synthetic string field */
    	E_CONTACT_IM_YAHOO_WORK_1,     /* Synthetic string field */
    	E_CONTACT_IM_YAHOO_WORK_2,     /* Synthetic string field */
    	E_CONTACT_IM_YAHOO_WORK_3,     /* Synthetic string field */
    	E_CONTACT_IM_MSN_HOME_1,       /* Synthetic string field */
    	E_CONTACT_IM_MSN_HOME_2,       /* Synthetic string field */
    	E_CONTACT_IM_MSN_HOME_3,       /* Synthetic string field */
    	E_CONTACT_IM_MSN_WORK_1,       /* Synthetic string field */
    	E_CONTACT_IM_MSN_WORK_2,       /* Synthetic string field */
    	E_CONTACT_IM_MSN_WORK_3,       /* Synthetic string field */
    	E_CONTACT_IM_ICQ_HOME_1,       /* Synthetic string field */
    	E_CONTACT_IM_ICQ_HOME_2,       /* Synthetic string field */
    	E_CONTACT_IM_ICQ_HOME_3,       /* Synthetic string field */
    	E_CONTACT_IM_ICQ_WORK_1,       /* Synthetic string field */
    	E_CONTACT_IM_ICQ_WORK_2,       /* Synthetic string field */
    	E_CONTACT_IM_ICQ_WORK_3,       /* Synthetic string field */

    	/* Convenience field for getting a name from the contact.
    	   Returns the first one of [File-As, Full Name, Org, Email1]
    	   to be set */
    	E_CONTACT_REV,     /* string field to hold  time of last update to this vcard*/
    	E_CONTACT_NAME_OR_ORG,

    	/* Address fields */
    	E_CONTACT_ADDRESS,       /* Multi-valued structured (EContactAddress) */
    	E_CONTACT_ADDRESS_HOME,  /* synthetic structured field (EContactAddress) */
    	E_CONTACT_ADDRESS_WORK,  /* synthetic structured field (EContactAddress) */
    	E_CONTACT_ADDRESS_OTHER, /* synthetic structured field (EContactAddress) */

    	E_CONTACT_CATEGORY_LIST, /* multi-valued */

    	/* Photo/Logo */
    	E_CONTACT_PHOTO,	 /* structured field (EContactPhoto) */
    	E_CONTACT_LOGO,	 /* structured field (EContactPhoto) */

    	E_CONTACT_NAME,		 /* structured field (EContactName) */
    	E_CONTACT_EMAIL,	 /* Multi-valued */

    	/* Instant Messaging fields */
    	E_CONTACT_IM_AIM,	 /* Multi-valued */
    	E_CONTACT_IM_GROUPWISE,  /* Multi-valued */
    	E_CONTACT_IM_JABBER,	 /* Multi-valued */
    	E_CONTACT_IM_YAHOO,	 /* Multi-valued */
    	E_CONTACT_IM_MSN,	 /* Multi-valued */
    	E_CONTACT_IM_ICQ,	 /* Multi-valued */

    	E_CONTACT_WANTS_HTML,    /* boolean field */

    	/* fields used for describing contact lists.  a contact list
    	   is just a contact with _IS_LIST set to true.  the members
    	   are listed in the _EMAIL field. */
    	E_CONTACT_IS_LIST,             /* boolean field */
    	E_CONTACT_LIST_SHOW_ADDRESSES, /* boolean field */

    	E_CONTACT_BIRTH_DATE,    /* structured field (EContactDate) */
    	E_CONTACT_ANNIVERSARY,   /* structured field (EContactDate) */

    	/* Security Fields */
    	E_CONTACT_X509_CERT,     /* structured field (EContactCert) */

    	E_CONTACT_IM_GADUGADU_HOME_1,  /* Synthetic string field */
    	E_CONTACT_IM_GADUGADU_HOME_2,  /* Synthetic string field */
    	E_CONTACT_IM_GADUGADU_HOME_3,  /* Synthetic string field */
    	E_CONTACT_IM_GADUGADU_WORK_1,  /* Synthetic string field */
    	E_CONTACT_IM_GADUGADU_WORK_2,  /* Synthetic string field */
    	E_CONTACT_IM_GADUGADU_WORK_3,  /* Synthetic string field */

    	E_CONTACT_IM_GADUGADU,   /* Multi-valued */

    	E_CONTACT_GEO,	/* structured field (EContactGeo) */

    	E_CONTACT_TEL, /* list of strings */

    	E_CONTACT_IM_SKYPE_HOME_1,     /* Synthetic string field */
    	E_CONTACT_IM_SKYPE_HOME_2,     /* Synthetic string field */
    	E_CONTACT_IM_SKYPE_HOME_3,     /* Synthetic string field */
    	E_CONTACT_IM_SKYPE_WORK_1,     /* Synthetic string field */
    	E_CONTACT_IM_SKYPE_WORK_2,     /* Synthetic string field */
    	E_CONTACT_IM_SKYPE_WORK_3,     /* Synthetic string field */
    	E_CONTACT_IM_SKYPE,		/* Multi-valued */

    	E_CONTACT_SIP,

    	E_CONTACT_FIELD_LAST,
    	E_CONTACT_FIELD_FIRST        = E_CONTACT_UID,

    	/* useful constants */
    	E_CONTACT_LAST_SIMPLE_STRING = E_CONTACT_NAME_OR_ORG,
    	E_CONTACT_FIRST_PHONE_ID     = E_CONTACT_PHONE_ASSISTANT,
    	E_CONTACT_LAST_PHONE_ID      = E_CONTACT_PHONE_TTYTDD,
    	E_CONTACT_FIRST_EMAIL_ID     = E_CONTACT_EMAIL_1,
    	E_CONTACT_LAST_EMAIL_ID      = E_CONTACT_EMAIL_4,
    	E_CONTACT_FIRST_ADDRESS_ID   = E_CONTACT_ADDRESS_HOME,
    	E_CONTACT_LAST_ADDRESS_ID    = E_CONTACT_ADDRESS_OTHER,
    	E_CONTACT_FIRST_LABEL_ID     = E_CONTACT_ADDRESS_LABEL_HOME,
    	E_CONTACT_LAST_LABEL_ID      = E_CONTACT_ADDRESS_LABEL_OTHER

    } EContactField;

### EContactName

    typedef struct {
    	gchar *family;
    	gchar *given;
    	gchar *additional;
    	gchar *prefixes;
    	gchar *suffixes;
    } EContactName;

### EContactGeo

    typedef struct {
    	gdouble latitude;
    	gdouble longitude;
    } EContactGeo;

### EContactPhoto

    typedef struct {
    	EContactPhotoType type;
    	union {
    		struct {
    			gchar *mime_type;
    			gsize length;
    			guchar *data;
    		} inlined;
    		gchar *uri;
    	} data;
    } EContactPhoto;

### EContactAddress

    typedef struct {
    	gchar *address_format; /* the two letter country code that
    				 determines the format/meaning of the
    				 following fields */
    	gchar *po;
    	gchar *ext;
    	gchar *street;
    	gchar *locality;
    	gchar *region;
    	gchar *code;
    	gchar *country;
    } EContactAddress;

### EContactDate

    typedef struct {
    	guint year;
    	guint month;
    	guint day;
    } EContactDate;

### EContactCert

    typedef struct {
    	gsize length;
    	gchar *data;
    } EContactCert;

### e_contact_new ()

    EContact*           e_contact_new                       (void);

Creates a new, blank EContact.

Returns : | A new EContact.

### e_contact_new_from_vcard ()

    EContact*           e_contact_new_from_vcard            (const gchar *vcard);

Creates a new EContact based on a vcard.

`vcard` : | a string representing a vcard
Returns : | A new EContact.

### e_contact_duplicate ()

    EContact*           e_contact_duplicate                 (EContact *contact);

Creates a copy of `contact`.

`contact` : | an EContact
Returns : | A new EContact identical to `contact`.

### e_contact_get ()

    gpointer            e_contact_get                       (EContact *contact,
                                                             EContactField field_id);

Gets the value of `contact`'s field specified by `field_id`.

`contact` : | an EContact
`field_id` : | an EContactField
Returns : | Depends on the field's type, owned by the caller.

### e_contact_get_const ()

    gconstpointer       e_contact_get_const                 (EContact *contact,
                                                             EContactField field_id);

Gets the value of `contact`'s field specified by `field_id`, caching the result so it can be freed later.

`contact` : | an EContact
`field_id` : | an EContactField
Returns : | Depends on the field's type, owned by the EContact.

### e_contact_set ()

    void                e_contact_set                       (EContact *contact,
                                                             EContactField field_id,
                                                             gconstpointer value);

Sets the value of `contact`'s field specified by `field_id` to `value`.

`contact` : | an EContact
`field_id` : | an EContactField
`value` : | a value whose type depends on the `field_id`

### e_contact_date_new ()

    EContactDate *      e_contact_date_new                  (void);

Creates a new EContactDate struct.

Returns : | A new EContactDate struct.

### e_contact_date_from_string ()

    EContactDate *      e_contact_date_from_string          (const gchar *str);

Creates a new EContactDate based on `str`.

`str` : | a date string in the format YYYY-MM-DD or YYYYMMDD
Returns : | A new EContactDate struct.

### e_contact_date_to_string ()

    gchar *             e_contact_date_to_string            (EContactDate *dt);

Generates a date string in the format YYYY-MM-DD based on the values of `dt`.

`dt` : | an EContactDate
Returns : | A date string, owned by the caller.

### e_contact_date_equal ()

    gboolean            e_contact_date_equal                (EContactDate *dt1,
                                                             EContactDate *dt2);

Checks if `dt1` and `dt2` are the same date.

`dt1` : | an EContactDate
`dt2` : | an EContactDate
Returns : | `TRUE` if `dt1` and `dt2` are equal, `FALSE` otherwise.

### e_contact_name_new ()

    EContactName *      e_contact_name_new                  (void);

Creates a new EContactName struct.

Returns : | A new EContactName struct.

### e_contact_name_to_string ()

    gchar *             e_contact_name_to_string            (const EContactName *name);

Generates a string representation of `name`.

`name` : | an EContactName
Returns : | The string representation of `name`.

### e_contact_name_from_string ()

    EContactName *      e_contact_name_from_string          (const gchar *name_str);

Creates a new EContactName based on the parsed `name_str`.

`name_str` : | a string representing a contact's full name
Returns : | A new EContactName struct.

### e_contact_name_copy ()

    EContactName *      e_contact_name_copy                 (EContactName *n);

Creates a copy of `n`.

`n` : | an EContactName
Returns : | A new EContactName identical to `n`.

### e_contact_date_free ()

    void                e_contact_date_free                 (EContactDate *date);

Frees the `date` struct and its contents.

`date` : | an EContactDate

### e_contact_name_free ()

    void                e_contact_name_free                 (EContactName *name);

Frees `name` and its contents.

`name` : | an EContactName

### e_contact_photo_free ()

    void                e_contact_photo_free                (EContactPhoto *photo);

Frees the `photo` struct and its contents.

`photo` : | an EContactPhoto struct

### e_contact_geo_free ()

    void                e_contact_geo_free                  (EContactGeo *geo);

Frees the `geo` struct and its contents.

`geo` : | an EContactGeo

### e_contact_address_free ()

    void                e_contact_address_free              (EContactAddress *address);

Frees the `address` struct and its contents.

`address` : | an EContactAddress

### e_contact_field_name ()

    const gchar *       e_contact_field_name                (EContactField field_id);

Gets the string representation of `field_id`.

`field_id` : | an EContactField
Returns : | The string representation of `field_id`, or `NULL` if it doesn't exist.

### e_contact_pretty_name ()

    const gchar *       e_contact_pretty_name               (EContactField field_id);

Gets a human-readable, translated string representation of `field_id`.

`field_id` : | an EContactField
Returns : | The human-readable representation of `field_id`, or `NULL` if it doesn't exist.

### e_contact_field_id ()

    EContactField       e_contact_field_id                  (const gchar *field_name);

Gets the EContactField corresponding to the `field_name`.

`field_name` : | a string representing a contact field
Returns : | An EContactField corresponding to `field_name`, or `0` if it doesn't exist.

### e_contact_field_id_from_vcard ()

    EContactField       e_contact_field_id_from_vcard       (const gchar *vcard_field);

Gets the EContactField corresponding to the `vcard_field`.

`vcard_field` : | a string representing a vCard field
Returns : | An EContactField corresponding to `vcard_field`, or `0` if it doesn't exist.

### e_contact_cert_free ()

    void                e_contact_cert_free                 (EContactCert *cert);

Frees the `cert` struct and its contents.

`cert` : | an EContactCert

### e_contact_get_attributes ()

    GList*              e_contact_get_attributes            (EContact *contact,
                                                             EContactField field_id);

Gets a list of the vcard attributes for `contact`'s `field_id`.

`contact` : | an EContact
`field_id` : | an EContactField
Returns : | A GList of pointers to EVCardAttribute, owned by the caller.

### e_contact_set_attributes ()

    void                e_contact_set_attributes            (EContact *contact,
                                                             EContactField field_id,
                                                             GList *attributes);

Sets the vcard attributes for `contact`'s `field_id`.

`contact` : | an EContact
`field_id` : | an EContactField
`attributes` : | a GList of pointers to EVCardAttribute

### e_contact_vcard_attribute ()

    const gchar *       e_contact_vcard_attribute           (EContactField field_id);

Gets the vcard attribute corresponding to `field_id`, as a string.

`field_id` : | an EContactField
Returns : | The vcard attribute corresponding to `field_id`, or `NULL` if it doesn't exist.

## Property Details

### The `"Rev"` property

      "Rev"                      gchar*                : Read / Write

The revision of the vCard.

Default value: NULL

### The `"address"` property

      "address"                  gpointer              : Read / Write

Address List.

### The `"address-home"` property

      "address-home"             EContactAddress*      : Read / Write

Home Address.

### The `"address-label-home"` property

      "address-label-home"       gchar*                : Read / Write

Home Address Label.

Default value: NULL

### The `"address-label-other"` property

      "address-label-other"      gchar*                : Read / Write

Other Address Label.

Default value: NULL

### The `"address-label-work"` property

      "address-label-work"       gchar*                : Read / Write

Work Address Label.

Default value: NULL

### The `"address-other"` property

      "address-other"            EContactAddress*      : Read / Write

Other Address.

### The `"address-work"` property

      "address-work"             EContactAddress*      : Read / Write

Work Address.

### The `"anniversary"` property

      "anniversary"              EContactDate*         : Read / Write

Anniversary.

### The `"assistant"` property

      "assistant"                gchar*                : Read / Write

Assistant.

Default value: NULL

### The `"assistant-phone"` property

      "assistant-phone"          gchar*                : Read / Write

Assistant Phone.

Default value: NULL

### The `"birth-date"` property

      "birth-date"               EContactDate*         : Read / Write

The birth date.

### The `"blog-url"` property

      "blog-url"                 gchar*                : Read / Write

The blog URL.

Default value: NULL

### The `"book-uri"` property

      "book-uri"                 gchar*                : Read / Write

Book URI.

Default value: NULL

### The `"business-fax"` property

      "business-fax"             gchar*                : Read / Write

Business Fax.

Default value: NULL

### The `"business-phone"` property

      "business-phone"           gchar*                : Read / Write

Business Phone.

Default value: NULL

### The `"business-phone-2"` property

      "business-phone-2"         gchar*                : Read / Write

Business Phone 2.

Default value: NULL

### The `"callback-phone"` property

      "callback-phone"           gchar*                : Read / Write

Callback Phone.

Default value: NULL

### The `"caluri"` property

      "caluri"                   gchar*                : Read / Write

The URI of the contact's calendar.

Default value: NULL

### The `"car-phone"` property

      "car-phone"                gchar*                : Read / Write

Car Phone.

Default value: NULL

### The `"categories"` property

      "categories"               gchar*                : Read / Write

Categories.

Default value: NULL

### The `"category-list"` property

      "category-list"            gpointer              : Read / Write

Category List.

### The `"company-phone"` property

      "company-phone"            gchar*                : Read / Write

Company Phone.

Default value: NULL

### The `"email"` property

      "email"                    gpointer              : Read / Write

Email List.

### The `"email-1"` property

      "email-1"                  gchar*                : Read / Write

Email 1.

Default value: NULL

### The `"email-2"` property

      "email-2"                  gchar*                : Read / Write

Email 2.

Default value: NULL

### The `"email-3"` property

      "email-3"                  gchar*                : Read / Write

Email 3.

Default value: NULL

### The `"email-4"` property

      "email-4"                  gchar*                : Read / Write

Email 4.

Default value: NULL

### The `"family-name"` property

      "family-name"              gchar*                : Read / Write

Family Name.

Default value: NULL

### The `"fburl"` property

      "fburl"                    gchar*                : Read / Write

Free/Busy URL.

Default value: NULL

### The `"file-as"` property

      "file-as"                  gchar*                : Read / Write

File Under.

Default value: NULL

### The `"full-name"` property

      "full-name"                gchar*                : Read / Write

Full Name.

Default value: NULL

### The `"geo"` property

      "geo"                      EContactGeo*          : Read / Write

Geographic Information.

### The `"given-name"` property

      "given-name"               gchar*                : Read / Write

Given Name.

Default value: NULL

### The `"home-fax"` property

      "home-fax"                 gchar*                : Read / Write

Home Fax.

Default value: NULL

### The `"home-phone"` property

      "home-phone"               gchar*                : Read / Write

Home Phone.

Default value: NULL

### The `"home-phone-2"` property

      "home-phone-2"             gchar*                : Read / Write

Home Phone 2.

Default value: NULL

### The `"homepage-url"` property

      "homepage-url"             gchar*                : Read / Write

Homepage URL.

Default value: NULL

### The `"icscalendar"` property

      "icscalendar"              gchar*                : Read / Write

ICS Calendar.

Default value: NULL

### The `"id"` property

      "id"                       gchar*                : Read / Write

Unique ID.

Default value: NULL

### The `"im-aim"` property

      "im-aim"                   gpointer              : Read / Write

AIM Screen Name List.

### The `"im-aim-home-1"` property

      "im-aim-home-1"            gchar*                : Read / Write

AIM Home Screen Name 1.

Default value: NULL

### The `"im-aim-home-2"` property

      "im-aim-home-2"            gchar*                : Read / Write

AIM Home Screen Name 2.

Default value: NULL

### The `"im-aim-home-3"` property

      "im-aim-home-3"            gchar*                : Read / Write

AIM Home Screen Name 3.

Default value: NULL

### The `"im-aim-work-1"` property

      "im-aim-work-1"            gchar*                : Read / Write

AIM Work Screen Name 1.

Default value: NULL

### The `"im-aim-work-2"` property

      "im-aim-work-2"            gchar*                : Read / Write

AIM Work Screen Name 2.

Default value: NULL

### The `"im-aim-work-3"` property

      "im-aim-work-3"            gchar*                : Read / Write

AIM Work Screen Name 3.

Default value: NULL

### The `"im-gadugadu"` property

      "im-gadugadu"              gpointer              : Read / Write

Gadu-Gadu Id List.

### The `"im-gadugadu-home-1"` property

      "im-gadugadu-home-1"       gchar*                : Read / Write

Gadu-Gadu Home Id 1.

Default value: NULL

### The `"im-gadugadu-home-2"` property

      "im-gadugadu-home-2"       gchar*                : Read / Write

Gadu-Gadu Home Id 2.

Default value: NULL

### The `"im-gadugadu-home-3"` property

      "im-gadugadu-home-3"       gchar*                : Read / Write

Gadu-Gadu Home Id 3.

Default value: NULL

### The `"im-gadugadu-work-1"` property

      "im-gadugadu-work-1"       gchar*                : Read / Write

Gadu-Gadu Work Id 1.

Default value: NULL

### The `"im-gadugadu-work-2"` property

      "im-gadugadu-work-2"       gchar*                : Read / Write

Gadu-Gadu Work Id 2.

Default value: NULL

### The `"im-gadugadu-work-3"` property

      "im-gadugadu-work-3"       gchar*                : Read / Write

Gadu-Gadu Work Id 3.

Default value: NULL

### The `"im-groupwise"` property

      "im-groupwise"             gpointer              : Read / Write

GroupWise Id List.

### The `"im-groupwise-home-1"` property

      "im-groupwise-home-1"      gchar*                : Read / Write

GroupWise Home Screen Name 1.

Default value: NULL

### The `"im-groupwise-home-2"` property

      "im-groupwise-home-2"      gchar*                : Read / Write

GroupWise Home Screen Name 2.

Default value: NULL

### The `"im-groupwise-home-3"` property

      "im-groupwise-home-3"      gchar*                : Read / Write

GroupWise Home Screen Name 3.

Default value: NULL

### The `"im-groupwise-work-1"` property

      "im-groupwise-work-1"      gchar*                : Read / Write

GroupWise Work Screen Name 1.

Default value: NULL

### The `"im-groupwise-work-2"` property

      "im-groupwise-work-2"      gchar*                : Read / Write

GroupWise Work Screen Name 2.

Default value: NULL

### The `"im-groupwise-work-3"` property

      "im-groupwise-work-3"      gchar*                : Read / Write

GroupWise Work Screen Name 3.

Default value: NULL

### The `"im-icq"` property

      "im-icq"                   gpointer              : Read / Write

ICQ Id List.

### The `"im-icq-home-1"` property

      "im-icq-home-1"            gchar*                : Read / Write

ICQ Home Id 1.

Default value: NULL

### The `"im-icq-home-2"` property

      "im-icq-home-2"            gchar*                : Read / Write

ICQ Home Id 2.

Default value: NULL

### The `"im-icq-home-3"` property

      "im-icq-home-3"            gchar*                : Read / Write

ICQ Home Id 3.

Default value: NULL

### The `"im-icq-work-1"` property

      "im-icq-work-1"            gchar*                : Read / Write

ICQ Work Id 1.

Default value: NULL

### The `"im-icq-work-2"` property

      "im-icq-work-2"            gchar*                : Read / Write

ICQ Work Id 2.

Default value: NULL

### The `"im-icq-work-3"` property

      "im-icq-work-3"            gchar*                : Read / Write

ICQ Work Id 3.

Default value: NULL

### The `"im-jabber"` property

      "im-jabber"                gpointer              : Read / Write

Jabber Id List.

### The `"im-jabber-home-1"` property

      "im-jabber-home-1"         gchar*                : Read / Write

Jabber Home Id 1.

Default value: NULL

### The `"im-jabber-home-2"` property

      "im-jabber-home-2"         gchar*                : Read / Write

Jabber Home Id 2.

Default value: NULL

### The `"im-jabber-home-3"` property

      "im-jabber-home-3"         gchar*                : Read / Write

Jabber Home Id 3.

Default value: NULL

### The `"im-jabber-work-1"` property

      "im-jabber-work-1"         gchar*                : Read / Write

Jabber Work Id 1.

Default value: NULL

### The `"im-jabber-work-2"` property

      "im-jabber-work-2"         gchar*                : Read / Write

Jabber Work Id 3.

Default value: NULL

### The `"im-jabber-work-3"` property

      "im-jabber-work-3"         gchar*                : Read / Write

Jabber Work Id 2.

Default value: NULL

### The `"im-msn"` property

      "im-msn"                   gpointer              : Read / Write

MSN Screen Name List.

### The `"im-msn-home-1"` property

      "im-msn-home-1"            gchar*                : Read / Write

MSN Home Screen Name 1.

Default value: NULL

### The `"im-msn-home-2"` property

      "im-msn-home-2"            gchar*                : Read / Write

MSN Home Screen Name 2.

Default value: NULL

### The `"im-msn-home-3"` property

      "im-msn-home-3"            gchar*                : Read / Write

MSN Home Screen Name 3.

Default value: NULL

### The `"im-msn-work-1"` property

      "im-msn-work-1"            gchar*                : Read / Write

MSN Work Screen Name 1.

Default value: NULL

### The `"im-msn-work-2"` property

      "im-msn-work-2"            gchar*                : Read / Write

MSN Work Screen Name 2.

Default value: NULL

### The `"im-msn-work-3"` property

      "im-msn-work-3"            gchar*                : Read / Write

MSN Work Screen Name 3.

Default value: NULL

### The `"im-skype"` property

      "im-skype"                 gpointer              : Read / Write

Skype Name List.

### The `"im-skype-home-1"` property

      "im-skype-home-1"          gchar*                : Read / Write

Skype Home Name 1.

Default value: NULL

### The `"im-skype-home-2"` property

      "im-skype-home-2"          gchar*                : Read / Write

Skype Home Name 2.

Default value: NULL

### The `"im-skype-home-3"` property

      "im-skype-home-3"          gchar*                : Read / Write

Skype Home Name 3.

Default value: NULL

### The `"im-skype-work-1"` property

      "im-skype-work-1"          gchar*                : Read / Write

Skype Work Name 1.

Default value: NULL

### The `"im-skype-work-2"` property

      "im-skype-work-2"          gchar*                : Read / Write

Skype Work Name 2.

Default value: NULL

### The `"im-skype-work-3"` property

      "im-skype-work-3"          gchar*                : Read / Write

Skype Work Name 3.

Default value: NULL

### The `"im-yahoo"` property

      "im-yahoo"                 gpointer              : Read / Write

Yahoo! Screen Name List.

### The `"im-yahoo-home-1"` property

      "im-yahoo-home-1"          gchar*                : Read / Write

Yahoo! Home Screen Name 1.

Default value: NULL

### The `"im-yahoo-home-2"` property

      "im-yahoo-home-2"          gchar*                : Read / Write

Yahoo! Home Screen Name 2.

Default value: NULL

### The `"im-yahoo-home-3"` property

      "im-yahoo-home-3"          gchar*                : Read / Write

Yahoo! Home Screen Name 3.

Default value: NULL

### The `"im-yahoo-work-1"` property

      "im-yahoo-work-1"          gchar*                : Read / Write

Yahoo! Work Screen Name 1.

Default value: NULL

### The `"im-yahoo-work-2"` property

      "im-yahoo-work-2"          gchar*                : Read / Write

Yahoo! Work Screen Name 2.

Default value: NULL

### The `"im-yahoo-work-3"` property

      "im-yahoo-work-3"          gchar*                : Read / Write

Yahoo! Work Screen Name 3.

Default value: NULL

### The `"isdn-phone"` property

      "isdn-phone"               gchar*                : Read / Write

ISDN.

Default value: NULL

### The `"list"` property

      "list"                     gboolean              : Read / Write

List.

Default value: FALSE

### The `"list-show-addresses"` property

      "list-show-addresses"      gboolean              : Read / Write

List Show Addresses.

Default value: FALSE

### The `"logo"` property

      "logo"                     EContactPhoto*        : Read / Write

Logo.

### The `"mailer"` property

      "mailer"                   gchar*                : Read / Write

Mailer.

Default value: NULL

### The `"manager"` property

      "manager"                  gchar*                : Read / Write

Manager.

Default value: NULL

### The `"mobile-phone"` property

      "mobile-phone"             gchar*                : Read / Write

Mobile Phone.

Default value: NULL

### The `"name"` property

      "name"                     EContactName*         : Read / Write

Name.

### The `"name-or-org"` property

      "name-or-org"              gchar*                : Read

Name or Org.

Default value: NULL

### The `"nickname"` property

      "nickname"                 gchar*                : Read / Write

Nickname.

Default value: NULL

### The `"note"` property

      "note"                     gchar*                : Read / Write

Note.

Default value: NULL

### The `"office"` property

      "office"                   gchar*                : Read / Write

Office.

Default value: NULL

### The `"org"` property

      "org"                      gchar*                : Read / Write

Organization.

Default value: NULL

### The `"org-unit"` property

      "org-unit"                 gchar*                : Read / Write

Organizational Unit.

Default value: NULL

### The `"other-fax"` property

      "other-fax"                gchar*                : Read / Write

Other Fax.

Default value: NULL

### The `"other-phone"` property

      "other-phone"              gchar*                : Read / Write

Other Phone.

Default value: NULL

### The `"pager"` property

      "pager"                    gchar*                : Read / Write

Pager.

Default value: NULL

### The `"phone"` property

      "phone"                    gpointer              : Read / Write

Telephone.

### The `"photo"` property

      "photo"                    EContactPhoto*        : Read / Write

Photo.

### The `"primary-phone"` property

      "primary-phone"            gchar*                : Read / Write

Primary Phone.

Default value: NULL

### The `"radio"` property

      "radio"                    gchar*                : Read / Write

Radio.

Default value: NULL

### The `"role"` property

      "role"                     gchar*                : Read / Write

Role.

Default value: NULL

### The `"sip"` property

      "sip"                      gpointer              : Read / Write

SIP address.

### The `"spouse"` property

      "spouse"                   gchar*                : Read / Write

Spouse's Name.

Default value: NULL

### The `"telex"` property

      "telex"                    gchar*                : Read / Write

Telex.

Default value: NULL

### The `"title"` property

      "title"                    gchar*                : Read / Write

Title.

Default value: NULL

### The `"tty"` property

      "tty"                      gchar*                : Read / Write

TTY.

Default value: NULL

### The `"video-url"` property

      "video-url"                gchar*                : Read / Write

Video Conferencing URL.

Default value: NULL

### The `"wants-html"` property

      "wants-html"               gboolean              : Read / Write

Wants HTML Mail.

Default value: FALSE

### The `"x509Cert"` property

      "x509Cert"                 EContactCert*         : Read / Write

X.509 Certificate.

## See Also

e-vcard