Skip to content

Commit 653c070

Browse files
authored
Docs: GoogleSlides, GoogleSheets, GoogleDocs (#405)
* Add GoogleDocs tools * Add GoogleSlides tools * Add GoogleSheets tools * Address Evan's comment * Fix link
1 parent 031a3d9 commit 653c070

File tree

37 files changed

+1221
-121
lines changed

37 files changed

+1221
-121
lines changed

pages/toolkits/productivity/_meta.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export default {
77
google_contacts: "Google Contacts",
88
google_docs: "Google Docs",
99
google_drive: "Google Drive",
10+
google_slides: "Google Slides",
1011
google_sheets: "Google Sheets",
1112
jira: "Jira",
1213
linear: "Linear",

pages/toolkits/productivity/google_docs.mdx

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ These tools are currently available in the Arcade Google Docs toolkit.
3838
["GoogleDocs.CreateDocumentFromText", "Create a new Google Docs document with specified text content. Note: This tool currently requires a self-hosted instance of Arcade.", ],
3939
["GoogleDocs.SearchDocuments", "Search for documents in the user's Google Drive. Note: This tool currently requires a self-hosted instance of Arcade."],
4040
["GoogleDocs.SearchAndRetrieveDocuments", "Search and retrieve the contents of Google documents in the user's Google Drive. Note: This tool currently requires a self-hosted instance of Arcade."],
41+
["GoogleDocs.ListDocumentComments", "List all comments on the specified Google Docs document. Note: This tool currently requires a self-hosted instance of Arcade.", ],
42+
["GoogleDocs.CommentOnDocument", "Comment on a specific document by its ID. Note: This tool currently requires a self-hosted instance of Arcade.", ],
4143
]}
4244
/>
4345

@@ -211,6 +213,60 @@ Searches for documents in the user's Google Drive and returns a list of document
211213
- **`limit`** _(int, optional)_ The number of documents to list. Defaults to `50`.
212214
- **`pagination_token`** _(str, optional)_ The pagination token to continue a previous request
213215

216+
---
217+
218+
## GoogleDocs.ListDocumentComments
219+
220+
<br />
221+
<TabbedCodeBlock
222+
tabs={[
223+
{
224+
label: "Call the Tool with User Authorization",
225+
content: {
226+
Python: [
227+
"/examples/integrations/toolkits/google/docs/list_document_comments_example_call_tool.py",
228+
],
229+
JavaScript: ["/examples/integrations/toolkits/google/docs/list_document_comments_example_call_tool.js"],
230+
},
231+
}
232+
]}
233+
/>
234+
235+
List all comments on the specified Google Docs document.
236+
237+
**Parameters**
238+
239+
- **`document_id`** _(string, required)_ The ID of the document to list comments for.
240+
- **`include_deleted`** _(bool, optional)_ Whether to include deleted comments in the results. Defaults to False.
241+
242+
---
243+
244+
## GoogleDocs.CommentOnDocument
245+
246+
<br />
247+
<TabbedCodeBlock
248+
tabs={[
249+
{
250+
label: "Call the Tool with User Authorization",
251+
content: {
252+
Python: [
253+
"/examples/integrations/toolkits/google/docs/comment_on_document_example_call_tool.py",
254+
],
255+
JavaScript: ["/examples/integrations/toolkits/google/docs/comment_on_document_example_call_tool.js"],
256+
},
257+
}
258+
]}
259+
/>
260+
261+
Comment on a specific document by its ID.
262+
263+
**Parameters**
264+
265+
- **`document_id`** _(string, required)_ The ID of the document to comment on.
266+
- **`comment_text`** _(string, required)_ The comment to add to the document.
267+
268+
269+
---
214270
## Auth
215271

216272
The Arcade Docs toolkit uses the [Google auth provider](/home/auth-providers/google) to connect to users' Google accounts.
Lines changed: 162 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Google Sheets
1+
# GoogleSheets
22

33
import ToolInfo from "@/components/ToolInfo";
44
import Badges from "@/components/Badges";
@@ -7,130 +7,231 @@ import TableOfContents from "@/components/TableOfContents";
77
import ToolFooter from "@/components/ToolFooter";
88

99
<ToolInfo
10-
description="Enable agents to create, read, and update spreadsheets in Google Sheets."
10+
description="Enable agents to interact with GoogleSheets"
1111
author="Arcade"
12-
codeLink="https://github.com/ArcadeAI/arcade-ai/tree/main/toolkits/google_sheets"
13-
authType="oauth2"
14-
authProviderName="Google"
15-
versions={["0.1.0"]}
12+
authType="OAuth2"
13+
versions={["3.1.0"]}
1614
/>
1715

1816
<Badges repo="arcadeai/arcade_google_sheets" />
1917

20-
The Arcade Google Sheets toolkit provides pre-built tools for working with spreadsheets using the Google Sheets API. Use these tools to:
18+
The Arcade GoogleSheets toolkit provides a pre-built set of tools for working with Google Sheets. These tools make it easy to build agents and AI apps that can:
2119

22-
- Create new spreadsheets
23-
- Retrieve spreadsheet data
24-
- Update cell values
20+
- Create new spreadsheets and seed initial data.
21+
- Search Google Drive for spreadsheets and retrieve metadata (titles, IDs, URLs; excludes trash).
22+
- Read specific ranges from sheets.
23+
- Write to single cells or update ranges with flexible data formats.
24+
- Add notes to cells.
25+
- Get detailed spreadsheet and sheet metadata (names, IDs, positions, row/column counts; metadata only).
2526

2627
## Available Tools
2728

28-
These tools are currently available in the Arcade Google Sheets toolkit.
29-
3029
<TableOfContents
3130
headers={["Tool Name", "Description"]}
32-
data={[
33-
["GoogleSheets.CreateSpreadsheet", "Create a new spreadsheet with a title and optional data."],
34-
["GoogleSheets.GetSpreadsheet", "Retrieve spreadsheet properties and cell data for all sheets."],
35-
["GoogleSheets.WriteToCell", "Write a value to a specific cell in a spreadsheet."],
36-
]}
31+
data={
32+
[
33+
["GoogleSheets.CreateSpreadsheet", "Create a new spreadsheet with the provided title and data in its first sheet"],
34+
["GoogleSheets.WriteToCell", "Write a value to a single cell in a spreadsheet."],
35+
["GoogleSheets.UpdateCells", "Write values to a Google Sheet using a flexible data format."],
36+
["GoogleSheets.AddNoteToCell", "Add a note to a specific cell in a spreadsheet. A note is a small"],
37+
["GoogleSheets.SearchSpreadsheets", "Searches for spreadsheets in the user's Google Drive based on the titles and content and"],
38+
["GoogleSheets.GetSpreadsheet", "Gets the specified range of cells from a single sheet in the spreadsheet."],
39+
["GoogleSheets.GetSpreadsheetMetadata", "Gets the metadata for a spreadsheet including the metadata for the sheets in the spreadsheet."],
40+
]
41+
}
3742
/>
3843

3944
<Tip>
4045
If you need to perform an action that's not listed here, you can [get in touch
4146
with us](mailto:[email protected]) to request a new tool, or [create your
42-
own tools](/home/build-tools/create-a-toolkit) with the [Google auth
43-
provider](/home/auth-providers/google#using-google-auth-in-custom-tools).
47+
own tools](/home/build-tools/create-a-toolkit).
4448
</Tip>
4549

4650
## GoogleSheets.CreateSpreadsheet
4751

48-
Create a new spreadsheet with a custom title and optional data in the first sheet.
52+
<br />
53+
<TabbedCodeBlock
54+
tabs={[
55+
{
56+
label: "Call the Tool Directly",
57+
content: {
58+
Python: ["/examples/integrations/toolkits/google_sheets/create_spreadsheet_example_call_tool.py"],
59+
JavaScript: ["/examples/integrations/toolkits/google_sheets/create_spreadsheet_example_call_tool.js"],
60+
},
61+
},
62+
]}
63+
/>
64+
65+
Create a new spreadsheet with the provided title and data in its first sheet
4966

5067
**Parameters**
5168

52-
- **`title`** _(string, required, default "Untitled spreadsheet")_: The title of the new spreadsheet.
53-
- **`data`** _(string, optional)_: A JSON string representing a dictionary that maps row numbers to dictionaries. Each sub-dictionary maps column letters to cell values. For example, `data[23]["C"]` is the value for row 23, column C.
69+
- **title** (`string`, optional) The title of the new spreadsheet
70+
- **data** (`string`, optional) The data to write to the spreadsheet. A JSON string (property names enclosed in double quotes) representing a dictionary that maps row numbers to dictionaries that map column letters to cell values. For example, data[23]['C'] would be the value of the cell in row 23, column C. Type hint: dict[int, dict[str, Union[int, float, str, bool]]]
71+
72+
73+
## GoogleSheets.WriteToCell
5474

5575
<br />
5676
<TabbedCodeBlock
5777
tabs={[
5878
{
59-
label: "Call the Tool with User Authorization",
79+
label: "Call the Tool Directly",
6080
content: {
61-
Python: [
62-
"/examples/integrations/toolkits/google/sheets/create_spreadsheet_example_call_tool.py",
63-
],
64-
JavaScript: ["/examples/integrations/toolkits/google/sheets/create_spreadsheet_example_call_tool.js"],
81+
Python: ["/examples/integrations/toolkits/google_sheets/write_to_cell_example_call_tool.py"],
82+
JavaScript: ["/examples/integrations/toolkits/google_sheets/write_to_cell_example_call_tool.js"],
6583
},
66-
}
84+
},
6785
]}
6886
/>
6987

70-
## GoogleSheets.GetSpreadsheet
88+
Write a value to a single cell in a spreadsheet.
89+
90+
**Parameters**
91+
92+
- **spreadsheet_id** (`string`, required) The id of the spreadsheet to write to
93+
- **column** (`string`, required) The column string to write to. For example, 'A', 'F', or 'AZ'
94+
- **row** (`integer`, required) The row number to write to
95+
- **value** (`string`, required) The value to write to the cell
96+
- **sheet_name** (`string`, optional) The name of the sheet to write to. Defaults to 'Sheet1'
7197

72-
Retrieve the specified range of cells from a single sheet in a spreadsheet.
98+
99+
## GoogleSheets.UpdateCells
100+
101+
<br />
102+
<TabbedCodeBlock
103+
tabs={[
104+
{
105+
label: "Call the Tool Directly",
106+
content: {
107+
Python: ["/examples/integrations/toolkits/google_sheets/update_cells_example_call_tool.py"],
108+
JavaScript: ["/examples/integrations/toolkits/google_sheets/update_cells_example_call_tool.js"],
109+
},
110+
},
111+
]}
112+
/>
113+
114+
Write values to a Google Sheet using a flexible data format.
73115

74116
**Parameters**
75117

76-
- **`spreadsheet_id`** _(string, required)_: The ID of the spreadsheet to retrieve.
77-
- **`sheet_position`** _(int, optional, default 1)_: The position/tab of the sheet in the spreadsheet to get. A value of 1 represents the first (leftmost/Sheet1) sheet.
78-
- **`sheet_id_or_name`** _(string, optional, default None)_: The ID or name of the sheet to get. If not provided, `sheet_position` will be used.
79-
- **`start_row`** _(int, optional, default 1)_: Starting row number (1-indexed).
80-
- **`start_col`** _(string, optional, default 'A')_: Starting column letter(s) or 1-based column number.
81-
- **`max_rows`** _(int, optional, default 1000)_: Maximum number of rows to fetch for each sheet in the spreadsheet. Must be between 1 and 1000.
82-
- **`max_cols`** _(int, optional, default 100)_: Maximum number of columns to fetch for each sheet in the spreadsheet. Must be between 1 and 100.
118+
- **spreadsheet_id** (`string`, required) The id of the spreadsheet to write to
119+
- **data** (`string`, required) The data to write. A JSON string (property names enclosed in double quotes) representing a dictionary that maps row numbers to dictionaries that map column letters to cell values. For example, data[23]['C'] is the value for cell C23. This is the same format accepted by create_spreadsheet. Type hint: dict[int, dict[str, int | float | str | bool]]
120+
- **sheet_position** (`integer`, optional) The position/tab of the sheet in the spreadsheet to write to. A value of 1 represents the first (leftmost/Sheet1) sheet. Defaults to 1.
121+
- **sheet_id_or_name** (`string`, optional) The id or name of the sheet to write to. If provided, takes precedence over sheet_position.
122+
123+
124+
## GoogleSheets.AddNoteToCell
83125

84126
<br />
85127
<TabbedCodeBlock
86128
tabs={[
87129
{
88-
label: "Call the Tool with User Authorization",
130+
label: "Call the Tool Directly",
89131
content: {
90-
Python: [
91-
"/examples/integrations/toolkits/google/sheets/get_spreadsheet_example_call_tool.py",
92-
],
93-
JavaScript: ["/examples/integrations/toolkits/google/sheets/get_spreadsheet_example_call_tool.js"],
132+
Python: ["/examples/integrations/toolkits/google_sheets/add_note_to_cell_example_call_tool.py"],
133+
JavaScript: ["/examples/integrations/toolkits/google_sheets/add_note_to_cell_example_call_tool.js"],
94134
},
95-
}
135+
},
96136
]}
97137
/>
98138

99-
## GoogleSheets.WriteToCell
139+
Add a note to a specific cell in a spreadsheet. A note is a small
140+
141+
**Parameters**
142+
143+
- **spreadsheet_id** (`string`, required) The id of the spreadsheet to add a comment to
144+
- **column** (`string`, required) The column string to add a note to. For example, 'A', 'F', or 'AZ'
145+
- **row** (`integer`, required) The row number to add a note to
146+
- **note_text** (`string`, required) The text for the note to add
147+
- **sheet_position** (`integer`, optional) The position/tab of the sheet in the spreadsheet to write to. A value of 1 represents the first (leftmost/Sheet1) sheet. Defaults to 1.
148+
- **sheet_id_or_name** (`string`, optional) The id or name of the sheet to write to. If provided, takes precedence over sheet_position.
149+
100150

101-
Write a value to a specific cell in a spreadsheet.
151+
## GoogleSheets.SearchSpreadsheets
152+
153+
<br />
154+
<TabbedCodeBlock
155+
tabs={[
156+
{
157+
label: "Call the Tool Directly",
158+
content: {
159+
Python: ["/examples/integrations/toolkits/google_sheets/search_spreadsheets_example_call_tool.py"],
160+
JavaScript: ["/examples/integrations/toolkits/google_sheets/search_spreadsheets_example_call_tool.js"],
161+
},
162+
},
163+
]}
164+
/>
165+
166+
Searches for spreadsheets in the user's Google Drive based on the titles and content and
102167

103168
**Parameters**
104169

105-
- **`spreadsheet_id`** _(string, required)_: The ID of the spreadsheet.
106-
- **`column`** _(string, required)_: The column to write to (for example, "A", "F", or "AZ").
107-
- **`row`** _(int, required)_: The row number to write to.
108-
- **`value`** _(string, required)_: The value to set in the specified cell.
109-
- **`sheet_name`** _(string, optional, default "Sheet1")_: The name of the sheet to update.
170+
- **spreadsheet_contains** (`array[string]`, optional) Keywords or phrases that must be in the spreadsheet title. Provide a list of keywords or phrases if needed.
171+
- **spreadsheet_not_contains** (`array[string]`, optional) Keywords or phrases that must NOT be in the spreadsheet title. Provide a list of keywords or phrases if needed.
172+
- **search_only_in_shared_drive_id** (`string`, optional) The ID of the shared drive to restrict the search to. If provided, the search will only return spreadsheets from this drive. Defaults to None, which searches across all drives.
173+
- **include_shared_drives** (`boolean`, optional) Whether to include spreadsheets from shared drives. Defaults to False (searches only in the user's 'My Drive').
174+
- **include_organization_domain_spreadsheets** (`boolean`, optional) Whether to include spreadsheets from the organization's domain. This is applicable to admin users who have permissions to view organization-wide spreadsheets in a Google Workspace account. Defaults to False.
175+
- **order_by** (`Enum` [OrderBy](/toolkits/productivity/google_sheets/reference#orderby), optional) Sort order. Defaults to listing the most recently modified spreadsheets first
176+
- **limit** (`integer`, optional) The maximum number of spreadsheets to list. Defaults to 10. Max is 50
177+
- **pagination_token** (`string`, optional) The pagination token to continue a previous request
178+
179+
180+
## GoogleSheets.GetSpreadsheet
110181

111182
<br />
112183
<TabbedCodeBlock
113184
tabs={[
114185
{
115-
label: "Call the Tool with User Authorization",
186+
label: "Call the Tool Directly",
116187
content: {
117-
Python: [
118-
"/examples/integrations/toolkits/google/sheets/write_to_cell_example_call_tool.py",
119-
],
120-
JavaScript: ["/examples/integrations/toolkits/google/sheets/write_to_cell_example_call_tool.js"],
188+
Python: ["/examples/integrations/toolkits/google_sheets/get_spreadsheet_example_call_tool.py"],
189+
JavaScript: ["/examples/integrations/toolkits/google_sheets/get_spreadsheet_example_call_tool.js"],
121190
},
122-
}
191+
},
123192
]}
124193
/>
125194

126-
---
195+
Gets the specified range of cells from a single sheet in the spreadsheet.
127196

128-
## Auth
197+
**Parameters**
129198

130-
The Arcade Google Sheets toolkit uses the [Google auth provider](/home/auth-providers/google) to connect to users' Google accounts.
199+
- **spreadsheet_id** (`string`, required) The id of the spreadsheet to get
200+
- **sheet_position** (`integer`, optional) The position/tab of the sheet in the spreadsheet to get. A value of 1 represents the first (leftmost/Sheet1) sheet . Defaults to 1.
201+
- **sheet_id_or_name** (`string`, optional) The id or name of the sheet to get. Defaults to None, which means sheet_position will be used instead.
202+
- **start_row** (`integer`, optional) Starting row number (1-indexed, defaults to 1)
203+
- **start_col** (`string`, optional) Starting column letter(s) or 1-based column number (defaults to 'A')
204+
- **max_rows** (`integer`, optional) Maximum number of rows to fetch for each sheet in the spreadsheet. Must be between 1 and 1000. Defaults to 1000.
205+
- **max_cols** (`integer`, optional) Maximum number of columns to fetch for each sheet in the spreadsheet. Must be between 1 and 100. Defaults to 100.
131206

132-
With the hosted Arcade Engine, there's nothing to configure. Your users will see `Arcade` as the name of the application that's requesting permission.
133207

134-
With a self-hosted installation of Arcade, you need to [configure the Google auth provider](/home/auth-providers/google#configuring-google-auth) with your own Google app credentials.
208+
## GoogleSheets.GetSpreadsheetMetadata
209+
210+
<br />
211+
<TabbedCodeBlock
212+
tabs={[
213+
{
214+
label: "Call the Tool Directly",
215+
content: {
216+
Python: ["/examples/integrations/toolkits/google_sheets/get_spreadsheet_metadata_example_call_tool.py"],
217+
JavaScript: ["/examples/integrations/toolkits/google_sheets/get_spreadsheet_metadata_example_call_tool.js"],
218+
},
219+
},
220+
]}
221+
/>
222+
223+
Gets the metadata for a spreadsheet including the metadata for the sheets in the spreadsheet.
224+
225+
**Parameters**
226+
227+
- **spreadsheet_id** (`string`, required) The id of the spreadsheet to get metadata for
228+
229+
230+
231+
232+
## Auth
233+
234+
The Arcade GoogleSheets toolkit uses the [Google auth provider](/home/auth-providers/google) to connect to users' GoogleSheets accounts. Please refer to the [Google auth provider](/home/auth-providers/google) documentation to learn how to configure auth.
135235

136236
<ToolFooter pipPackageName="arcade_google_sheets" />
237+

0 commit comments

Comments
 (0)