This script provides functionality to manage Google Contacts directly from a Google Sheet.
Start by doing a copy of it by clicking this link.
Import all your Google Contacts into a structured sheet.
Edit existing contact fields and push updates back to Google Contacts.
Add new contacts by filling in blank rows with new contact details.
Delete existing contacts by clearing all editable fields except Resource Name and ETag.
The following columns can be updated and changes will be reflected in Google Contacts:
First Name (givenName)
Last Name (familyName)
Nickname
Emails (comma-separated list)
Phone Numbers (comma-separated list)
Addresses (semicolon-separated list)
Birthdays (in valid date format; see below for details)
Occupations
Organizations
URLs (comma-separated list)
The following columns are imported for reference but cannot be updated or directly modified:
Resource Name (used internally by the People API to identify contacts)
ETag (used internally for concurrency control)
Display Name (automatically derived by Google from First Name and Last Name)
Contact Source (e.g., myContacts, directory)
Photos
Relations
Other technical or metadata fields
To add a new contact:
Add a new row at the bottom of the sheet.
Leave the "Resource Name" and "ETag" columns blank.
Fill in the desired details in the editable fields (First Name, Last Name, Emails, Phones, etc.).
Run the "Push Changes To Contacts" option from the custom menu.
- The script will detect the blank Resource Name and ETag fields and create a new contact in Google Contacts.
- After creation, the Resource Name and ETag will be updated in the sheet automatically.
To delete a contact:
Clear all editable fields in the row except "Resource Name" and "ETag".
Leave the "Resource Name" and "ETag" fields intact (these are required to identify the contact to delete).
Run the "Push Changes To Contacts" option from the custom menu.
- The script will detect the cleared fields and delete the corresponding contact from Google Contacts.
- After deletion, the row will remain in the sheet, but the contact will no longer exist in Google Contacts.
The Birthday column supports the following date formats:
`YYYY-MM-DD` (e.g., `1988-08-08`)
`MM/DD/YYYY` (e.g., `08/08/1988`)
When updating or adding a birthday:
Ensure the year, month, and day are all valid integers.
If the format is invalid, the script will skip the update and log a warning.
Only contacts in `myContacts` are fully editable. Contacts from other sources (e.g., directory or domain) may be read-only.
If a contact does not belong to `myContacts`, the script may fail to update certain fields.
Changes to non-editable fields (e.g., Display Name) will not be pushed back to Google Contacts.
Ensure all data entered in editable columns follows the correct format (e.g., valid email addresses, phone numbers, etc.).
Always save a backup of your contacts before making large-scale edits.