# Titanium.Contacts.Person

> An object that represents a contact record for a person or organization in the system contacts address book.

- Source: https://titaniumsdk.com/docs/sdk/13.1.1/Titanium.Contacts.Person
- Titanium SDK version: 13.1.1
- Kind: proxy
- Platforms: Android, iPhone, iPad, macOS
- Since: Titanium SDK iPhone 0.8, iPad 0.8, Android 0.8, macOS 9.2.0
- Extends: Titanium.Proxy
- Inheritance: Titanium.Proxy

A person object is created using [Titanium.Contacts.createPerson](https://titaniumsdk.com/docs/sdk/Titanium.Contacts.md#createPerson).

The following two kinds of properties exist for this object:

* single value - contains either a `string` or `number` type value, an array of `string` type 
values, or `null` if unset.
* multi-value - contains a dictionary with typical keys of `home`, `work` and/or `other`. Each 
key contains either a `string` type value, an array of `string` type values, or a dictionary 
containing key/value pairs with `string` type values.

#### Adding and Modifying Properties

Support for adding and modifying properties is currently supported on iOS and Android.

#### Keys as Address Book UI Labels

Keys act as labels in the address book user interface.

Although there is limited support for custom, arbitrarily-named, keys when used with multi-value 
properties, there is no support them with single value properties.

On iOS, creating custom keys is not recommended, and will lead to undefined results.

If a label has been created by the user of the device and used with a multi-value property, it 
will exist as a key with the same name.

See examples in [Titanium.Contacts](https://titaniumsdk.com/docs/sdk/Titanium.Contacts.md) for more information.

These APIs are unavailable on macOS if the app is built on a version of Xcode < 12.

## Properties

### address

- Type: Dictionary
- Platforms: Android, iPhone, iPad, macOS

Addresses for the person. Multi-value. Read-only on Android.

The format of the dictionary accepted by this property is as follows:

* Keys: any of `home`, `work`, and/or `other`.
* Values: arrays of dictionary types with seven keys, `CountryCode`, `Street`, `City`, 
, `State`, `Country` and `PostalCode`, each with a `string` type value.

On Android:

'CountryCode' and 'County' are currently not supported.

On iOS:

The `CountryCode` key value may be one of the recognized two-character ISO 3166-1 country 
codes, and determines the format in which the contact is presented by the address book 
user interface. See the wikipedia section 
[ISO 3166-1 alpha-2](http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) 
for a comprehensive list of codes.

### alternateBirthday

- Type: Dictionary
- Platforms: iPhone, iPad, macOS
- Since: Titanium SDK iPhone 3.6.0, iPad 3.6.0, macOS 9.2.0

Alternate birthday of the person. Single Dictionary.

The format of the dictionary accepted by this property is as follows:

* Keys: `calendarIdentifier`, `era`, `year`, `month`, `day` and `isLeapMonth`.
* Values: Use `chinese`, `hebrew` and `islamic-civil` for `calendarIdentifier`.
Use `number` type for `era`, `year`, `month` and `day`. These must be consistent with
corresponding `calendarIdentifier`.
Use `boolean` type for `isLeapMonth`.

### birthday

- Type: String
- Platforms: Android, iPhone, iPad, macOS

Date of birth of the person. Single value.

Date format is "_yyyy_-_MM_-_dd_**T**_HH_**:**_mm_**:**_ss_**.**_SSS_**+0000**"

### date

- Type: Dictionary
- Platforms: Android, iPhone, iPad, macOS

Dates associated with the person. Multi-value.

Adding or modifying this property is not currently supported.

The format of the dictionary accepted by this property is as follows:

* Keys: any of `anniversary` and/or `other`.
* Values: array of `string` type.

Date format is "_yyyy_-_MM_-_dd_**T**_HH_**:**_mm_**:**_ss_**.**_SSS_**+0000**"

### department

- Type: String
- Platforms: Android, iPhone, iPad, macOS

Department of the person. Single value.

### email

- Type: Dictionary
- Platforms: Android, iPhone, iPad, macOS

Email addresses for the person. Multi-value. Read-only on Android.

The format of the dictionary accepted by this property is as follows:

* Keys: any of `home`, `work`, and/or `other`.
* Values: array of `string` type.

### firstName

- Type: String
- Platforms: Android, iPhone, iPad, macOS

First name of the person. Single value.

### firstPhonetic

- Type: String
- Platforms: Android, iPhone, iPad, macOS

Phonetic first name of the person.  Single value.

### fullName

- Type: String
- Platforms: Android, iPhone, iPad, macOS
- Permission: read-only

Localized full name of the person. Single value. Read-only on Android.

The full name will be printed in the order of.
Prefix,first name, middle name, family name, suffix.

### id

- Type: Number
- Platforms: Android
- Permission: read-only

Record identifier of the person. Single value.

### identifier

- Type: String
- Platforms: iPhone, iPad, macOS
- Since: Titanium SDK iPhone 5.0.0, iPad 5.0.0, macOS 9.2.0
- Permission: read-only

Identifier of the person.

Prior to iOS 9, use the [recordId](https://titaniumsdk.com/docs/sdk/Titanium.Contacts.Person.md#recordId) property.

### image

- Type: Titanium.Blob
- Platforms: Android, iPhone, iPad, macOS

Image for the person. Single value. Read-only for >= iOS 9

Set to `null` to remove the image.

### instantMessage

- Type: Dictionary
- Platforms: Android, iPhone, iPad, macOS

Instant messenger information of the person. Multi-value.

The format of the dictionary accepted by this property is as follows:

* Keys: any of `home`, `work` and/or `other`.
* Values: arrays of dictionary types with two keys, `service` and `username`, each with a 
`string` type value.

The `service` key value may be one of `AIM`, `Facebook`, `GaduGadu`, `GoogleTalk`, `ICQ`, 
`Jabber`, `MSN`, `QQ`, `Skype`, or `Yahoo`. These values are key sensitive.

### jobTitle

- Type: String
- Platforms: Android, iPhone, iPad, macOS

Job title of the person. Single value.

### kind

- Type: Number
- Platforms: Android, iPhone, iPad, macOS

Determines the type of information the person record contains; either person or organization. 
Read-only on Android.

Accepts: `Titanium.Contacts.CONTACTS_KIND_ORGANIZATION`, `Titanium.Contacts.CONTACTS_KIND_PERSON`

### lastName

- Type: String
- Platforms: Android, iPhone, iPad, macOS

Last name of the person. Single value.

### lastPhonetic

- Type: String
- Platforms: Android, iPhone, iPad, macOS

Phonetic last name of the person. Single value.

### middleName

- Type: String
- Platforms: Android, iPhone, iPad, macOS

Middle name of the person. Single value.

### middlePhonetic

- Type: String
- Platforms: Android, iPhone, iPad, macOS

Phonetic middle name of the person. Single value.

### nickname

- Type: String
- Platforms: Android, iPhone, iPad, macOS

Nickname of the person. Single value.

### note

- Type: String
- Platforms: Android, iPhone, iPad, macOS

Notes for the person. Single value.

### organization

- Type: String
- Platforms: Android, iPhone, iPad, macOS

Organization to which the person belongs. Single value.

### phone

- Type: Dictionary
- Platforms: Android, iPhone, iPad, macOS

Phone numbers for the person. Multi-value. Read-only on Android.

The format of the dictionary accepted by this property is as follows:

* Keys: any of `home`, `work`, `other`, `mobile`, `pager`, `workFax`, `homeFax`, `main`, 
and/or `iPhone`.
* Values: array of `string` type.

### prefix

- Type: String
- Platforms: Android, iPhone, iPad, macOS
- Permission: read-only

Prefix for the person. Single value.

### recordId

- Type: Number
- Platforms: iPhone, iPad, macOS
- Since: Titanium SDK 9.2.0
- Requires: iOS ≤8.4

Record identifier of the person. Single value. Deprecated since iOS 9.

For iOS 9 and later, use the [Titanium.Contacts.Person.identifier](https://titaniumsdk.com/docs/sdk/Titanium.Contacts.Person.md#identifier) property. 
Previously, a contact can be selected without requiring User permission. In such case this 
property returns -1.

### relatedNames

- Type: Dictionary
- Platforms: Android, iPhone, iPad, macOS

Names of people to which the person is related. Multi-value.

The format of the dictionary accepted by this property is as follows:

* Keys: any of `mother`, `father`, `parent`, `brother`, `sister`, `child`, `friend`, `spouse`, 
`partner`, `assistant`, `manager`, and/or `other`.
* Values: array of `string` type.

### socialProfile

- Type: Dictionary
- Platforms: iPhone, iPad, macOS
- Since: Titanium SDK iPhone 3.6.0, iPad 3.6.0, macOS 9.2.0

Social profile information of the person. Multi-value.

The format of the dictionary accepted by this property is as follows:

* Keys: any of `home`, `work` and/or `other`.
* Values: arrays of dictionary types with two keys, `service` and `username` each with a 
`string` type value.

The `service` key value may be one of `twitter`, `sinaweibo`, `gamecenter`, `facebook`, 
`myspace`, `linkedin`, or `flickr`. These values are key sensitive.

### suffix

- Type: String
- Platforms: Android, iPhone, iPad, macOS
- Permission: read-only

Suffix for the person. Single value.

### url

- Type: Dictionary
- Platforms: Android, iPhone, iPad, macOS

URLs of webpages associated with the person. Multi-value.

The format of the dictionary accepted by this property is as follows:

* Keys: any of `homepage`, `home`, `work`, and/or `other`.
* Values: array of `string` type.

## Inherited members

7 members are inherited. Each is documented on the type that declares it.

- [Titanium.Proxy](https://titaniumsdk.com/docs/sdk/13.1.1/Titanium.Proxy.md): `addEventListener`, `apiName`, `applyProperties`, `bubbleParent`, `fireEvent`, `lifecycleContainer`, `removeEventListener`

---

- This corpus documents Titanium SDK 13.4.1. Anything here that does not name a version describes 13.4.1.
- Titanium is maintained by TiDev. The Appcelerator toolchain is retired: there is no `appc` CLI, no Appcelerator Studio and no hosted build service. The supported CLI is `titanium` on npm, invoked as `ti`.

