[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-google-workspace-gws-people":3,"mdc--57xd2o-key":44,"related-repo-google-workspace-gws-people":762,"related-org-google-workspace-gws-people":848},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":18,"repoUrl":19,"updatedAt":20,"license":21,"forks":22,"topics":23,"repo":39,"sourceUrl":42,"mdContent":43},"gws-people","manage Google contacts and profiles","Google People: Manage contacts and profiles.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"google-workspace","Google Workspace","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgoogle-workspace.png","googleworkspace",[13,15],{"name":9,"slug":8,"type":14},"tag",{"name":16,"slug":17,"type":14},"HR","hr",29614,"https:\u002F\u002Fgithub.com\u002Fgoogleworkspace\u002Fcli","2026-07-12T08:24:58.352925",null,1717,[24,25,26,27,28,29,30,31,32,33,34,35,36,8,37,38],"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","oauth2","rust",{"repoUrl":19,"stars":18,"forks":22,"topics":40,"description":41},[24,25,26,27,28,29,30,31,32,33,34,35,36,8,37,38],"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.","https:\u002F\u002Fgithub.com\u002Fgoogleworkspace\u002Fcli\u002Ftree\u002FHEAD\u002Fskills\u002Fgws-people","---\nname: gws-people\ndescription: \"Google People: Manage contacts and profiles.\"\nmetadata:\n  version: 0.22.5\n  openclaw:\n    category: \"productivity\"\n    requires:\n      bins:\n        - gws\n    cliHelp: \"gws people --help\"\n---\n\n# people (v1)\n\n> **PREREQUISITE:** Read `..\u002Fgws-shared\u002FSKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.\n\n```bash\ngws people \u003Cresource> \u003Cmethod> [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:\u002F\u002Fcloud.google.com\u002Fapis\u002Fdesign\u002Ferrors#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:\u002F\u002Fdevelopers.google.com\u002Fpeople\u002Fv1\u002Fother-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 \u002F\u002F lock contention.\n  - `get` — Provides information about a person by specifying a resource name. Use `people\u002Fme` 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\u002Fme` 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:\u002F\u002Fdevelopers.google.com\u002Fpeople\u002Fv1\u002Fcontacts#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.\u003Cresource>.\u003Cmethod>\n```\n\nUse `gws schema` output to build your `--params` and `--json` flags.\n\n",{"data":45,"body":54},{"name":4,"description":6,"metadata":46},{"version":47,"openclaw":48},"0.22.5",{"category":49,"requires":50,"cliHelp":53},"productivity",{"bins":51},[52],"gws","gws people --help",{"type":55,"children":56},"root",[57,66,99,172,179,186,268,274,365,370,608,614,619,727,756],{"type":58,"tag":59,"props":60,"children":62},"element","h1",{"id":61},"people-v1",[63],{"type":64,"value":65},"text","people (v1)",{"type":58,"tag":67,"props":68,"children":69},"blockquote",{},[70],{"type":58,"tag":71,"props":72,"children":73},"p",{},[74,80,82,89,91,97],{"type":58,"tag":75,"props":76,"children":77},"strong",{},[78],{"type":64,"value":79},"PREREQUISITE:",{"type":64,"value":81}," Read ",{"type":58,"tag":83,"props":84,"children":86},"code",{"className":85},[],[87],{"type":64,"value":88},"..\u002Fgws-shared\u002FSKILL.md",{"type":64,"value":90}," for auth, global flags, and security rules. If missing, run ",{"type":58,"tag":83,"props":92,"children":94},{"className":93},[],[95],{"type":64,"value":96},"gws generate-skills",{"type":64,"value":98}," to create it.",{"type":58,"tag":100,"props":101,"children":106},"pre",{"className":102,"code":103,"language":104,"meta":105,"style":105},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","gws people \u003Cresource> \u003Cmethod> [flags]\n","bash","",[107],{"type":58,"tag":83,"props":108,"children":109},{"__ignoreMap":105},[110],{"type":58,"tag":111,"props":112,"children":115},"span",{"class":113,"line":114},"line",1,[116,121,127,133,138,144,149,153,158,163,167],{"type":58,"tag":111,"props":117,"children":119},{"style":118},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[120],{"type":64,"value":52},{"type":58,"tag":111,"props":122,"children":124},{"style":123},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[125],{"type":64,"value":126}," people",{"type":58,"tag":111,"props":128,"children":130},{"style":129},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[131],{"type":64,"value":132}," \u003C",{"type":58,"tag":111,"props":134,"children":135},{"style":123},[136],{"type":64,"value":137},"resourc",{"type":58,"tag":111,"props":139,"children":141},{"style":140},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[142],{"type":64,"value":143},"e",{"type":58,"tag":111,"props":145,"children":146},{"style":129},[147],{"type":64,"value":148},">",{"type":58,"tag":111,"props":150,"children":151},{"style":129},[152],{"type":64,"value":132},{"type":58,"tag":111,"props":154,"children":155},{"style":123},[156],{"type":64,"value":157},"metho",{"type":58,"tag":111,"props":159,"children":160},{"style":140},[161],{"type":64,"value":162},"d",{"type":58,"tag":111,"props":164,"children":165},{"style":129},[166],{"type":64,"value":148},{"type":58,"tag":111,"props":168,"children":169},{"style":140},[170],{"type":64,"value":171}," [flags]\n",{"type":58,"tag":173,"props":174,"children":176},"h2",{"id":175},"api-resources",[177],{"type":64,"value":178},"API Resources",{"type":58,"tag":180,"props":181,"children":183},"h3",{"id":182},"contactgroups",[184],{"type":64,"value":185},"contactGroups",{"type":58,"tag":187,"props":188,"children":189},"ul",{},[190,202,213,224,235,246,257],{"type":58,"tag":191,"props":192,"children":193},"li",{},[194,200],{"type":58,"tag":83,"props":195,"children":197},{"className":196},[],[198],{"type":64,"value":199},"batchGet",{"type":64,"value":201}," — Get a list of contact groups owned by the authenticated user by specifying a list of contact group resource names.",{"type":58,"tag":191,"props":203,"children":204},{},[205,211],{"type":58,"tag":83,"props":206,"children":208},{"className":207},[],[209],{"type":64,"value":210},"create",{"type":64,"value":212}," — 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.",{"type":58,"tag":191,"props":214,"children":215},{},[216,222],{"type":58,"tag":83,"props":217,"children":219},{"className":218},[],[220],{"type":64,"value":221},"delete",{"type":64,"value":223}," — 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.",{"type":58,"tag":191,"props":225,"children":226},{},[227,233],{"type":58,"tag":83,"props":228,"children":230},{"className":229},[],[231],{"type":64,"value":232},"get",{"type":64,"value":234}," — Get a specific contact group owned by the authenticated user by specifying a contact group resource name.",{"type":58,"tag":191,"props":236,"children":237},{},[238,244],{"type":58,"tag":83,"props":239,"children":241},{"className":240},[],[242],{"type":64,"value":243},"list",{"type":64,"value":245}," — List all contact groups owned by the authenticated user. Members of the contact groups are not populated.",{"type":58,"tag":191,"props":247,"children":248},{},[249,255],{"type":58,"tag":83,"props":250,"children":252},{"className":251},[],[253],{"type":64,"value":254},"update",{"type":64,"value":256}," — 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.",{"type":58,"tag":191,"props":258,"children":259},{},[260,266],{"type":58,"tag":83,"props":261,"children":263},{"className":262},[],[264],{"type":64,"value":265},"members",{"type":64,"value":267}," — Operations on the 'members' resource",{"type":58,"tag":180,"props":269,"children":271},{"id":270},"othercontacts",[272],{"type":64,"value":273},"otherContacts",{"type":58,"tag":187,"props":275,"children":276},{},[277,288,317],{"type":58,"tag":191,"props":278,"children":279},{},[280,286],{"type":58,"tag":83,"props":281,"children":283},{"className":282},[],[284],{"type":64,"value":285},"copyOtherContactToMyContactsGroup",{"type":64,"value":287}," — 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.",{"type":58,"tag":191,"props":289,"children":290},{},[291,296,298,307,309,315],{"type":58,"tag":83,"props":292,"children":294},{"className":293},[],[295],{"type":64,"value":243},{"type":64,"value":297}," — 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 ",{"type":58,"tag":299,"props":300,"children":304},"a",{"href":301,"rel":302},"https:\u002F\u002Fcloud.google.com\u002Fapis\u002Fdesign\u002Ferrors#error_info",[303],"nofollow",[305],{"type":64,"value":306},"google.rpc.ErrorInfo",{"type":64,"value":308}," with reason \"EXPIRED_SYNC_TOKEN\". In the case of such an error clients should make a full sync request without a ",{"type":58,"tag":83,"props":310,"children":312},{"className":311},[],[313],{"type":64,"value":314},"sync_token",{"type":64,"value":316},".",{"type":58,"tag":191,"props":318,"children":319},{},[320,326,328,334,336,342,344,350,352,357,359],{"type":58,"tag":83,"props":321,"children":323},{"className":322},[],[324],{"type":64,"value":325},"search",{"type":64,"value":327}," — Provides a list of contacts in the authenticated user's other contacts that matches the search query. The query matches on a contact's ",{"type":58,"tag":83,"props":329,"children":331},{"className":330},[],[332],{"type":64,"value":333},"names",{"type":64,"value":335},", ",{"type":58,"tag":83,"props":337,"children":339},{"className":338},[],[340],{"type":64,"value":341},"emailAddresses",{"type":64,"value":343},", and ",{"type":58,"tag":83,"props":345,"children":347},{"className":346},[],[348],{"type":64,"value":349},"phoneNumbers",{"type":64,"value":351}," fields that are from the OTHER_CONTACT source. ",{"type":58,"tag":75,"props":353,"children":354},{},[355],{"type":64,"value":356},"IMPORTANT",{"type":64,"value":358},": Before searching, clients should send a warmup request with an empty query to update the cache. See ",{"type":58,"tag":299,"props":360,"children":363},{"href":361,"rel":362},"https:\u002F\u002Fdevelopers.google.com\u002Fpeople\u002Fv1\u002Fother-contacts#search_the_users_other_contacts",[303],[364],{"type":64,"value":361},{"type":58,"tag":180,"props":366,"children":368},{"id":367},"people",[369],{"type":64,"value":367},{"type":58,"tag":187,"props":371,"children":372},{},[373,384,395,406,417,435,452,493,548,559,586,597],{"type":58,"tag":191,"props":374,"children":375},{},[376,382],{"type":58,"tag":83,"props":377,"children":379},{"className":378},[],[380],{"type":64,"value":381},"batchCreateContacts",{"type":64,"value":383}," — 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.",{"type":58,"tag":191,"props":385,"children":386},{},[387,393],{"type":58,"tag":83,"props":388,"children":390},{"className":389},[],[391],{"type":64,"value":392},"batchUpdateContacts",{"type":64,"value":394}," — 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.",{"type":58,"tag":191,"props":396,"children":397},{},[398,404],{"type":58,"tag":83,"props":399,"children":401},{"className":400},[],[402],{"type":64,"value":403},"createContact",{"type":64,"value":405}," — 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.",{"type":58,"tag":191,"props":407,"children":408},{},[409,415],{"type":58,"tag":83,"props":410,"children":412},{"className":411},[],[413],{"type":64,"value":414},"deleteContactPhoto",{"type":64,"value":416}," — Delete a contact's photo. Mutate requests for the same user should be done sequentially to avoid \u002F\u002F lock contention.",{"type":58,"tag":191,"props":418,"children":419},{},[420,425,427,433],{"type":58,"tag":83,"props":421,"children":423},{"className":422},[],[424],{"type":64,"value":232},{"type":64,"value":426}," — Provides information about a person by specifying a resource name. Use ",{"type":58,"tag":83,"props":428,"children":430},{"className":429},[],[431],{"type":64,"value":432},"people\u002Fme",{"type":64,"value":434}," to indicate the authenticated user. The request returns a 400 error if 'personFields' is not specified.",{"type":58,"tag":191,"props":436,"children":437},{},[438,444,446,451],{"type":58,"tag":83,"props":439,"children":441},{"className":440},[],[442],{"type":64,"value":443},"getBatchGet",{"type":64,"value":445}," — Provides information about a list of specific people by specifying a list of requested resource names. Use ",{"type":58,"tag":83,"props":447,"children":449},{"className":448},[],[450],{"type":64,"value":432},{"type":64,"value":434},{"type":58,"tag":191,"props":453,"children":454},{},[455,461,463,468,470,476,478,484,486,491],{"type":58,"tag":83,"props":456,"children":458},{"className":457},[],[459],{"type":64,"value":460},"listDirectoryPeople",{"type":64,"value":462}," — Provides a list of domain profiles and domain contacts in the authenticated user's domain directory. When the ",{"type":58,"tag":83,"props":464,"children":466},{"className":465},[],[467],{"type":64,"value":314},{"type":64,"value":469}," is specified, resources deleted since the last sync will be returned as a person with ",{"type":58,"tag":83,"props":471,"children":473},{"className":472},[],[474],{"type":64,"value":475},"PersonMetadata.deleted",{"type":64,"value":477}," set to true. When the ",{"type":58,"tag":83,"props":479,"children":481},{"className":480},[],[482],{"type":64,"value":483},"page_token",{"type":64,"value":485}," or ",{"type":58,"tag":83,"props":487,"children":489},{"className":488},[],[490],{"type":64,"value":314},{"type":64,"value":492}," 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.",{"type":58,"tag":191,"props":494,"children":495},{},[496,502,504,509,510,516,517,522,523,528,529,535,537,541,542],{"type":58,"tag":83,"props":497,"children":499},{"className":498},[],[500],{"type":64,"value":501},"searchContacts",{"type":64,"value":503}," — Provides a list of contacts in the authenticated user's grouped contacts that matches the search query. The query matches on a contact's ",{"type":58,"tag":83,"props":505,"children":507},{"className":506},[],[508],{"type":64,"value":333},{"type":64,"value":335},{"type":58,"tag":83,"props":511,"children":513},{"className":512},[],[514],{"type":64,"value":515},"nickNames",{"type":64,"value":335},{"type":58,"tag":83,"props":518,"children":520},{"className":519},[],[521],{"type":64,"value":341},{"type":64,"value":335},{"type":58,"tag":83,"props":524,"children":526},{"className":525},[],[527],{"type":64,"value":349},{"type":64,"value":343},{"type":58,"tag":83,"props":530,"children":532},{"className":531},[],[533],{"type":64,"value":534},"organizations",{"type":64,"value":536}," fields that are from the CONTACT source. ",{"type":58,"tag":75,"props":538,"children":539},{},[540],{"type":64,"value":356},{"type":64,"value":358},{"type":58,"tag":299,"props":543,"children":546},{"href":544,"rel":545},"https:\u002F\u002Fdevelopers.google.com\u002Fpeople\u002Fv1\u002Fcontacts#search_the_users_contacts",[303],[547],{"type":64,"value":544},{"type":58,"tag":191,"props":549,"children":550},{},[551,557],{"type":58,"tag":83,"props":552,"children":554},{"className":553},[],[555],{"type":64,"value":556},"searchDirectoryPeople",{"type":64,"value":558}," — Provides a list of domain profiles and domain contacts in the authenticated user's domain directory that match the search query.",{"type":58,"tag":191,"props":560,"children":561},{},[562,568,570,576,578,584],{"type":58,"tag":83,"props":563,"children":565},{"className":564},[],[566],{"type":64,"value":567},"updateContact",{"type":64,"value":569}," — 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 ",{"type":58,"tag":83,"props":571,"children":573},{"className":572},[],[574],{"type":64,"value":575},"update_mask",{"type":64,"value":577}," will be replaced. The server returns a 400 error if ",{"type":58,"tag":83,"props":579,"children":581},{"className":580},[],[582],{"type":64,"value":583},"person.metadata.sources",{"type":64,"value":585}," is not specified for the contact to be updated or if there is no contact source.",{"type":58,"tag":191,"props":587,"children":588},{},[589,595],{"type":58,"tag":83,"props":590,"children":592},{"className":591},[],[593],{"type":64,"value":594},"updateContactPhoto",{"type":64,"value":596}," — Update a contact's photo. Mutate requests for the same user should be sent sequentially to avoid increased latency and failures.",{"type":58,"tag":191,"props":598,"children":599},{},[600,606],{"type":58,"tag":83,"props":601,"children":603},{"className":602},[],[604],{"type":64,"value":605},"connections",{"type":64,"value":607}," — Operations on the 'connections' resource",{"type":58,"tag":173,"props":609,"children":611},{"id":610},"discovering-commands",[612],{"type":64,"value":613},"Discovering Commands",{"type":58,"tag":71,"props":615,"children":616},{},[617],{"type":64,"value":618},"Before calling any API method, inspect it:",{"type":58,"tag":100,"props":620,"children":622},{"className":102,"code":621,"language":104,"meta":105,"style":105},"# Browse resources and methods\ngws people --help\n\n# Inspect a method's required params, types, and defaults\ngws schema people.\u003Cresource>.\u003Cmethod>\n",[623],{"type":58,"tag":83,"props":624,"children":625},{"__ignoreMap":105},[626,635,652,662,671],{"type":58,"tag":111,"props":627,"children":628},{"class":113,"line":114},[629],{"type":58,"tag":111,"props":630,"children":632},{"style":631},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[633],{"type":64,"value":634},"# Browse resources and methods\n",{"type":58,"tag":111,"props":636,"children":638},{"class":113,"line":637},2,[639,643,647],{"type":58,"tag":111,"props":640,"children":641},{"style":118},[642],{"type":64,"value":52},{"type":58,"tag":111,"props":644,"children":645},{"style":123},[646],{"type":64,"value":126},{"type":58,"tag":111,"props":648,"children":649},{"style":123},[650],{"type":64,"value":651}," --help\n",{"type":58,"tag":111,"props":653,"children":655},{"class":113,"line":654},3,[656],{"type":58,"tag":111,"props":657,"children":659},{"emptyLinePlaceholder":658},true,[660],{"type":64,"value":661},"\n",{"type":58,"tag":111,"props":663,"children":665},{"class":113,"line":664},4,[666],{"type":58,"tag":111,"props":667,"children":668},{"style":631},[669],{"type":64,"value":670},"# Inspect a method's required params, types, and defaults\n",{"type":58,"tag":111,"props":672,"children":674},{"class":113,"line":673},5,[675,679,684,689,694,698,702,706,710,714,718,722],{"type":58,"tag":111,"props":676,"children":677},{"style":118},[678],{"type":64,"value":52},{"type":58,"tag":111,"props":680,"children":681},{"style":123},[682],{"type":64,"value":683}," schema",{"type":58,"tag":111,"props":685,"children":686},{"style":123},[687],{"type":64,"value":688}," people.",{"type":58,"tag":111,"props":690,"children":691},{"style":129},[692],{"type":64,"value":693},"\u003C",{"type":58,"tag":111,"props":695,"children":696},{"style":123},[697],{"type":64,"value":137},{"type":58,"tag":111,"props":699,"children":700},{"style":140},[701],{"type":64,"value":143},{"type":58,"tag":111,"props":703,"children":704},{"style":129},[705],{"type":64,"value":148},{"type":58,"tag":111,"props":707,"children":708},{"style":123},[709],{"type":64,"value":316},{"type":58,"tag":111,"props":711,"children":712},{"style":129},[713],{"type":64,"value":693},{"type":58,"tag":111,"props":715,"children":716},{"style":123},[717],{"type":64,"value":157},{"type":58,"tag":111,"props":719,"children":720},{"style":140},[721],{"type":64,"value":162},{"type":58,"tag":111,"props":723,"children":724},{"style":129},[725],{"type":64,"value":726},">\n",{"type":58,"tag":71,"props":728,"children":729},{},[730,732,738,740,746,748,754],{"type":64,"value":731},"Use ",{"type":58,"tag":83,"props":733,"children":735},{"className":734},[],[736],{"type":64,"value":737},"gws schema",{"type":64,"value":739}," output to build your ",{"type":58,"tag":83,"props":741,"children":743},{"className":742},[],[744],{"type":64,"value":745},"--params",{"type":64,"value":747}," and ",{"type":58,"tag":83,"props":749,"children":751},{"className":750},[],[752],{"type":64,"value":753},"--json",{"type":64,"value":755}," flags.",{"type":58,"tag":757,"props":758,"children":759},"style",{},[760],{"type":64,"value":761},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":763,"total":847},[764,781,794,806,816,827,836],{"slug":765,"name":765,"fn":766,"description":767,"org":768,"tags":769,"stars":18,"repoUrl":19,"updatedAt":780},"gws-admin-reports","generate Google Workspace audit and usage reports","Google Workspace Admin SDK: Audit logs and usage reports.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[770,773,774,777],{"name":771,"slug":772,"type":14},"Audit","audit",{"name":9,"slug":8,"type":14},{"name":775,"slug":776,"type":14},"Logs","logs",{"name":778,"slug":779,"type":14},"Reporting","reporting","2026-07-12T08:26:31.062227",{"slug":782,"name":782,"fn":783,"description":784,"org":785,"tags":786,"stars":18,"repoUrl":19,"updatedAt":793},"gws-calendar","manage Google Calendar events and schedules","Google Calendar: Manage calendars and events.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[787,789,790],{"name":788,"slug":32,"type":14},"Google Calendar",{"name":9,"slug":8,"type":14},{"name":791,"slug":792,"type":14},"Scheduling","scheduling","2026-07-12T08:24:59.616333",{"slug":795,"name":795,"fn":796,"description":797,"org":798,"tags":799,"stars":18,"repoUrl":19,"updatedAt":805},"gws-calendar-agenda","show upcoming Google Calendar events","Google Calendar: Show upcoming events across all calendars.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[800,801,802],{"name":788,"slug":32,"type":14},{"name":9,"slug":8,"type":14},{"name":803,"slug":804,"type":14},"Meetings","meetings","2026-07-12T08:25:10.888894",{"slug":807,"name":807,"fn":808,"description":809,"org":810,"tags":811,"stars":18,"repoUrl":19,"updatedAt":815},"gws-calendar-insert","create Google Calendar events","Google Calendar: Create a new event.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[812,813,814],{"name":788,"slug":32,"type":14},{"name":9,"slug":8,"type":14},{"name":791,"slug":792,"type":14},"2026-07-12T08:25:09.604012",{"slug":817,"name":817,"fn":818,"description":819,"org":820,"tags":821,"stars":18,"repoUrl":19,"updatedAt":826},"gws-chat","manage Google Chat spaces and messages","Google Chat: Manage Chat spaces and messages.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[822,823],{"name":9,"slug":8,"type":14},{"name":824,"slug":825,"type":14},"Messaging","messaging","2026-07-12T08:26:10.121585",{"slug":828,"name":828,"fn":829,"description":830,"org":831,"tags":832,"stars":18,"repoUrl":19,"updatedAt":835},"gws-chat-send","send messages to Google Chat spaces","Google Chat: Send a message to a space.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[833,834],{"name":9,"slug":8,"type":14},{"name":824,"slug":825,"type":14},"2026-07-12T08:24:45.761728",{"slug":837,"name":837,"fn":838,"description":839,"org":840,"tags":841,"stars":18,"repoUrl":19,"updatedAt":846},"gws-classroom","manage Google Classroom rosters and coursework","Google Classroom: Manage classes, rosters, and coursework.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[842,845],{"name":843,"slug":844,"type":14},"Education","education",{"name":9,"slug":8,"type":14},"2026-07-12T08:25:00.846861",95,{"items":849,"total":847},[850,857,863,869,875,880,885,890,903,916,929,942],{"slug":765,"name":765,"fn":766,"description":767,"org":851,"tags":852,"stars":18,"repoUrl":19,"updatedAt":780},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[853,854,855,856],{"name":771,"slug":772,"type":14},{"name":9,"slug":8,"type":14},{"name":775,"slug":776,"type":14},{"name":778,"slug":779,"type":14},{"slug":782,"name":782,"fn":783,"description":784,"org":858,"tags":859,"stars":18,"repoUrl":19,"updatedAt":793},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[860,861,862],{"name":788,"slug":32,"type":14},{"name":9,"slug":8,"type":14},{"name":791,"slug":792,"type":14},{"slug":795,"name":795,"fn":796,"description":797,"org":864,"tags":865,"stars":18,"repoUrl":19,"updatedAt":805},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[866,867,868],{"name":788,"slug":32,"type":14},{"name":9,"slug":8,"type":14},{"name":803,"slug":804,"type":14},{"slug":807,"name":807,"fn":808,"description":809,"org":870,"tags":871,"stars":18,"repoUrl":19,"updatedAt":815},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[872,873,874],{"name":788,"slug":32,"type":14},{"name":9,"slug":8,"type":14},{"name":791,"slug":792,"type":14},{"slug":817,"name":817,"fn":818,"description":819,"org":876,"tags":877,"stars":18,"repoUrl":19,"updatedAt":826},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[878,879],{"name":9,"slug":8,"type":14},{"name":824,"slug":825,"type":14},{"slug":828,"name":828,"fn":829,"description":830,"org":881,"tags":882,"stars":18,"repoUrl":19,"updatedAt":835},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[883,884],{"name":9,"slug":8,"type":14},{"name":824,"slug":825,"type":14},{"slug":837,"name":837,"fn":838,"description":839,"org":886,"tags":887,"stars":18,"repoUrl":19,"updatedAt":846},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[888,889],{"name":843,"slug":844,"type":14},{"name":9,"slug":8,"type":14},{"slug":891,"name":891,"fn":892,"description":893,"org":894,"tags":895,"stars":18,"repoUrl":19,"updatedAt":902},"gws-docs","read and write Google Docs","Read and write Google Docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[896,899,901],{"name":897,"slug":898,"type":14},"Documents","documents",{"name":900,"slug":34,"type":14},"Google Docs",{"name":9,"slug":8,"type":14},"2026-07-12T08:26:07.645598",{"slug":904,"name":904,"fn":905,"description":906,"org":907,"tags":908,"stars":18,"repoUrl":19,"updatedAt":915},"gws-docs-write","append text to Google Docs","Google Docs: Append text to a document.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[909,910,911,912],{"name":897,"slug":898,"type":14},{"name":900,"slug":34,"type":14},{"name":9,"slug":8,"type":14},{"name":913,"slug":914,"type":14},"Writing","writing","2026-07-12T08:26:22.261687",{"slug":917,"name":917,"fn":918,"description":919,"org":920,"tags":921,"stars":18,"repoUrl":19,"updatedAt":928},"gws-drive","manage files in Google Drive","Google Drive: Manage files, folders, and shared drives.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[922,925,927],{"name":923,"slug":924,"type":14},"File Storage","file-storage",{"name":926,"slug":35,"type":14},"Google Drive",{"name":9,"slug":8,"type":14},"2026-07-12T08:24:42.025037",{"slug":930,"name":930,"fn":931,"description":932,"org":933,"tags":934,"stars":18,"repoUrl":19,"updatedAt":941},"gws-drive-upload","upload files to Google Drive","Google Drive: Upload a file with automatic metadata.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[935,936,939,940],{"name":923,"slug":924,"type":14},{"name":937,"slug":938,"type":14},"File Uploads","file-uploads",{"name":926,"slug":35,"type":14},{"name":9,"slug":8,"type":14},"2026-07-12T08:25:02.071018",{"slug":943,"name":943,"fn":944,"description":945,"org":946,"tags":947,"stars":18,"repoUrl":19,"updatedAt":954},"gws-events","subscribe to Google Workspace events","Subscribe to Google Workspace events.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[948,950,951],{"name":949,"slug":26,"type":14},"Automation",{"name":9,"slug":8,"type":14},{"name":952,"slug":953,"type":14},"Notifications","notifications","2026-07-12T08:24:35.741351"]