{"id":"b3a9a3f7-7a48-411f-ae71-8f8959582ca3","shortId":"qt4k6f","kind":"skill","title":"gws-people","tagline":"Google People: Manage contacts and profiles.","description":"# people (v1)\n\n> **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.\n\n```bash\ngws people <resource> <method> [flags]\n```\n\n## API Resources\n\n### contactGroups\n\n  - `batchGet` — Get a list of contact groups owned by the authenticated user by specifying a list of contact group resource names.\n  - `create` — Create a new contact group owned by the authenticated user. Created contact group names must be unique to the users contact groups. Attempting to create a group with a duplicate name will return a HTTP 409 error. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.\n  - `delete` — Delete an existing contact group owned by the authenticated user by specifying a contact group resource name. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.\n  - `get` — Get a specific contact group owned by the authenticated user by specifying a contact group resource name.\n  - `list` — List all contact groups owned by the authenticated user. Members of the contact groups are not populated.\n  - `update` — Update the name of an existing contact group owned by the authenticated user. Updated contact group names must be unique to the users contact groups. Attempting to create a group with a duplicate name will return a HTTP 409 error. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.\n  - `members` — Operations on the 'members' resource\n\n### otherContacts\n\n  - `copyOtherContactToMyContactsGroup` — Copies an \"Other contact\" to a new contact in the user's \"myContacts\" group Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.\n  - `list` — List all \"Other contacts\", that is contacts that are not in a contact group. \"Other contacts\" are typically auto created contacts from interactions. Sync tokens expire 7 days after the full sync. A request with an expired sync token will get an error with an [google.rpc.ErrorInfo](https://cloud.google.com/apis/design/errors#error_info) with reason \"EXPIRED_SYNC_TOKEN\". In the case of such an error clients should make a full sync request without a `sync_token`.\n  - `search` — Provides a list of contacts in the authenticated user's other contacts that matches the search query. The query matches on a contact's `names`, `emailAddresses`, and `phoneNumbers` fields that are from the OTHER_CONTACT source. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/other-contacts#search_the_users_other_contacts\n\n### people\n\n  - `batchCreateContacts` — Create a batch of new contacts and return the PersonResponses for the newly Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.\n  - `batchUpdateContacts` — Update a batch of contacts and return a map of resource names to PersonResponses for the updated contacts. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.\n  - `createContact` — Create a new contact and return the person resource for that contact. The request returns a 400 error if more than one field is specified on a field that is a singleton for contact sources: * biographies * birthdays * genders * names Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.\n  - `deleteContactPhoto` — Delete a contact's photo. Mutate requests for the same user should be done sequentially to avoid // lock contention.\n  - `get` — Provides information about a person by specifying a resource name. Use `people/me` to indicate the authenticated user. The request returns a 400 error if 'personFields' is not specified.\n  - `getBatchGet` — Provides information about a list of specific people by specifying a list of requested resource names. Use `people/me` to indicate the authenticated user. The request returns a 400 error if 'personFields' is not specified.\n  - `listDirectoryPeople` — Provides a list of domain profiles and domain contacts in the authenticated user's domain directory. When the `sync_token` is specified, resources deleted since the last sync will be returned as a person with `PersonMetadata.deleted` set to true. When the `page_token` or `sync_token` is specified, all other request parameters must match the first call. Writes may have a propagation delay of several minutes for sync requests. Incremental syncs are not intended for read-after-write use cases.\n  - `searchContacts` — Provides a list of contacts in the authenticated user's grouped contacts that matches the search query. The query matches on a contact's `names`, `nickNames`, `emailAddresses`, `phoneNumbers`, and `organizations` fields that are from the CONTACT source. **IMPORTANT**: Before searching, clients should send a warmup request with an empty query to update the cache. See https://developers.google.com/people/v1/contacts#search_the_users_contacts\n  - `searchDirectoryPeople` — Provides a list of domain profiles and domain contacts in the authenticated user's domain directory that match the search query.\n  - `updateContact` — Update contact data for an existing contact person. Any non-contact data will not be modified. Any non-contact data in the person to update will be ignored. All fields specified in the `update_mask` will be replaced. The server returns a 400 error if `person.metadata.sources` is not specified for the contact to be updated or if there is no contact source.\n  - `updateContactPhoto` — Update a contact's photo. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.\n  - `connections` — Operations on the 'connections' resource\n\n## Discovering Commands\n\nBefore calling any API method, inspect it:\n\n```bash\n# Browse resources and methods\ngws people --help\n\n# Inspect a method's required params, types, and defaults\ngws schema people.<resource>.<method>\n```\n\nUse `gws schema` output to build your `--params` and `--json` flags.","tags":["gws","people","cli","googleworkspace","agent-skills","ai-agent","automation","discovery-api","gemini-cli-extension","google-admin","google-api","google-calendar"],"capabilities":["skill","source-googleworkspace","skill-gws-people","topic-agent-skills","topic-ai-agent","topic-automation","topic-cli","topic-discovery-api","topic-gemini-cli-extension","topic-google-admin","topic-google-api","topic-google-calendar","topic-google-chat","topic-google-docs","topic-google-drive"],"categories":["cli"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/googleworkspace/cli/gws-people","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add googleworkspace/cli","source_repo":"https://github.com/googleworkspace/cli","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 25185 github stars · SKILL.md body (6,192 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T06:52:36.741Z","embedding":null,"createdAt":"2026-04-18T20:25:03.949Z","updatedAt":"2026-04-22T06:52:36.741Z","lastSeenAt":"2026-04-22T06:52:36.741Z","tsv":"'/apis/design/errors#error_info)':328 '/gws-shared/skill.md':14 '/people/v1/contacts#search_the_users_contacts':756 '/people/v1/other-contacts#search_the_users_other_contacts':409 '400':493,574,609,824 '409':96,223 '7':306 'api':36,877 'attempt':83,210 'auth':16 'authent':49,69,123,157,174,196,360,568,603,628,706,769 'auto':298 'avoid':109,143,236,274,436,471,527,549,861 'bash':32,881 'batch':414,444 'batchcreatecontact':411 'batchget':39 'batchupdatecontact':441 'biographi':512 'birthday':513 'brows':882 'build':906 'cach':405,752 'call':673,875 'case':336,697 'client':341,392,739 'cloud.google.com':327 'cloud.google.com/apis/design/errors#error_info)':326 'command':873 'connect':866,870 'contact':7,44,56,64,72,81,118,128,152,162,169,179,191,199,208,252,256,283,286,292,295,300,357,364,375,387,417,446,459,480,488,510,535,625,703,710,721,734,766,781,786,791,800,833,842,847 'contactgroup':38 'content':551 'copi':249 'copyothercontacttomycontactsgroup':248 'creat':30,60,61,71,85,212,299,412,477 'createcontact':476 'data':782,792,801 'day':307 'default':897 'delay':679 'delet':114,115,533,640 'deletecontactphoto':532 'developers.google.com':408,755 'developers.google.com/people/v1/contacts#search_the_users_contacts':754 'developers.google.com/people/v1/other-contacts#search_the_users_other_contacts':407 'directori':632,773 'discov':872 'domain':621,624,631,762,765,772 'done':546 'duplic':90,217 'emailaddress':378,725 'empti':400,747 'error':97,224,322,340,494,575,610,825 'exist':117,190,785 'expir':305,316,331 'failur':113,147,240,278,440,475,531,865 'field':381,499,504,729,811 'first':672 'flag':18,35,911 'full':310,345 'gender':514 'generat':27 'generate-skil':26 'get':40,148,149,320,552 'getbatchget':581 'global':17 'googl':4 'google.rpc.errorinfo':325 'group':45,57,65,73,82,87,119,129,153,163,170,180,192,200,209,214,262,293,709 'gws':2,25,33,886,898,902 'gws-peopl':1 'help':888 'http':95,222 'ignor':809 'import':389,736 'increas':110,144,237,275,437,472,528,862 'increment':686 'indic':566,601 'inform':554,583 'inspect':879,889 'intend':690 'interact':302 'json':910 'last':643 'latenc':111,145,238,276,438,473,529,863 'list':42,54,166,167,279,280,355,586,593,619,701,760 'listdirectorypeopl':616 'lock':550 'make':343 'manag':6 'map':450 'mask':816 'match':366,372,670,712,718,775 'may':675 'member':176,241,245 'method':878,885,891 'minut':682 'miss':23 'modifi':796 'must':75,202,669 'mutat':98,132,225,263,425,460,516,538,850 'mycontact':261 'name':59,74,91,131,165,187,201,218,377,453,515,562,597,723 'new':63,255,416,479 'newli':424 'nicknam':724 'non':790,799 'non-contact':789,798 'one':498 'oper':242,867 'organ':728 'othercontact':247 'output':904 'own':46,66,120,154,171,193 'page':658 'param':894,908 'paramet':668 'peopl':3,5,10,34,410,589,887,900 'people/me':564,599 'person':484,557,650,787,804 'person.metadata.sources':827 'personfield':577,612 'personmetadata.deleted':652 'personrespons':421,455 'phonenumb':380,726 'photo':537,849 'popul':183 'prerequisit':12 'profil':9,622,763 'propag':678 'provid':353,553,582,617,699,758 'queri':369,371,401,715,717,748,778 'read':13,693 'read-after-writ':692 'reason':330 'replac':819 'request':99,133,226,264,313,347,397,426,461,490,517,539,571,595,606,667,685,744,851 'requir':893 'resourc':37,58,130,164,246,452,485,561,596,639,871,883 'return':93,220,419,448,482,491,572,607,647,822 'rule':21 'run':24 'schema':899,903 'search':352,368,391,714,738,777 'searchcontact':698 'searchdirectorypeopl':757 'secur':20 'see':406,753 'send':394,741 'sent':106,140,233,271,433,468,524,858 'sequenti':107,141,234,272,434,469,525,547,859 'server':821 'set':653 'sever':681 'sinc':641 'singleton':508 'skill':28 'skill-gws-people' 'sourc':388,511,735,843 'source-googleworkspace' 'specif':151,588 'specifi':52,126,160,501,559,580,591,615,638,664,812,830 'sync':303,311,317,332,346,350,635,644,661,684,687 'token':304,318,333,351,636,659,662 'topic-agent-skills' 'topic-ai-agent' 'topic-automation' 'topic-cli' 'topic-discovery-api' 'topic-gemini-cli-extension' 'topic-google-admin' 'topic-google-api' 'topic-google-calendar' 'topic-google-chat' 'topic-google-docs' 'topic-google-drive' 'true':655 'type':895 'typic':297 'uniqu':77,204 'updat':184,185,198,403,442,458,750,780,806,815,836,845 'updatecontact':779 'updatecontactphoto':844 'use':563,598,696,901 'user':50,70,80,103,124,137,158,175,197,207,230,259,268,361,430,465,521,543,569,604,629,707,770,855 'v1':11 'warmup':396,743 'without':348 'write':674,695","prices":[{"id":"83aac339-dadb-46f8-916e-8d55ba2b6e1b","listingId":"b3a9a3f7-7a48-411f-ae71-8f8959582ca3","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"googleworkspace","category":"cli","install_from":"skills.sh"},"createdAt":"2026-04-18T20:25:03.949Z"}],"sources":[{"listingId":"b3a9a3f7-7a48-411f-ae71-8f8959582ca3","source":"github","sourceId":"googleworkspace/cli/gws-people","sourceUrl":"https://github.com/googleworkspace/cli/tree/main/skills/gws-people","isPrimary":false,"firstSeenAt":"2026-04-18T21:52:03.452Z","lastSeenAt":"2026-04-22T06:52:36.741Z"},{"listingId":"b3a9a3f7-7a48-411f-ae71-8f8959582ca3","source":"skills_sh","sourceId":"googleworkspace/cli/gws-people","sourceUrl":"https://skills.sh/googleworkspace/cli/gws-people","isPrimary":true,"firstSeenAt":"2026-04-18T20:25:03.949Z","lastSeenAt":"2026-04-22T06:40:12.975Z"}],"details":{"listingId":"b3a9a3f7-7a48-411f-ae71-8f8959582ca3","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"googleworkspace","slug":"gws-people","github":{"repo":"googleworkspace/cli","stars":25185,"topics":["agent-skills","ai-agent","automation","cli","discovery-api","gemini-cli-extension","google-admin","google-api","google-calendar","google-chat","google-docs","google-drive","google-sheets","google-workspace","oauth2","rust"],"license":"apache-2.0","html_url":"https://github.com/googleworkspace/cli","pushed_at":"2026-04-22T06:40:36Z","description":"Google Workspace CLI — one command-line tool for Drive, Gmail, Calendar, Sheets, Docs, Chat, Admin, and more. Dynamically built from Google Discovery Service. Includes AI agent skills.","skill_md_sha":"06527a73a3e65ca66be80c5d021e527c62522840","skill_md_path":"skills/gws-people/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/googleworkspace/cli/tree/main/skills/gws-people"},"layout":"multi","source":"github","category":"cli","frontmatter":{"name":"gws-people","description":"Google People: Manage contacts and profiles."},"skills_sh_url":"https://skills.sh/googleworkspace/cli/gws-people"},"updatedAt":"2026-04-22T06:52:36.741Z"}}