The contacts API provides functions to load and update contact information from Google Contacts. Currently there is no support for creating new contacts, although that will be added shortly.

All contacts-related symbols are in the package CL-GDATA-CONTACTS. The below examples assumes that this package is imported into the current package. The package CL-GDATA-USER imports all gdata packages, and can be used for testing.

Assuming you have an authenticated session as described in Authentication, simply use the function LIST-ALL-CONTACTS to retrieve a list of contacts. Here is an example:

CL-GDATA-USER> (list-contacts)
(#<CONTACT "John Johnson"> #<CONTACT "Peter Peterson">)

In this example, the two contacts were returned. They are instances of the class CL-GDATA-CONTACTS:CONTACT.

The fields that can be update are SETF'able like the following:

CL-GDATA-USER> (setf (given-name contact) "Updated name")

After updating any fields, use the function UPDATE-CONTACT to send the updated contact to Google Contacts:

CL-GDATA-USER> (update-contact contact)
#<CONTACT "Contact name">

Note that this function returns the updated contact as stored in Google Contacts.