@aaronsb/google-workspace-mcp 4.0.1 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/README.md +154 -141
  2. package/build/factory/manifest/calendar.yaml +22 -22
  3. package/build/factory/manifest/docs.yaml +19 -3
  4. package/build/factory/manifest/drive.yaml +16 -16
  5. package/build/factory/manifest/gmail.yaml +18 -18
  6. package/build/factory/manifest/meet.yaml +13 -13
  7. package/build/factory/manifest/sheets.yaml +29 -29
  8. package/build/factory/manifest/tasks.yaml +14 -14
  9. package/build/index.js +13 -9
  10. package/build/index.js.map +1 -1
  11. package/build/lifecycle.d.ts +35 -0
  12. package/build/lifecycle.js +159 -0
  13. package/build/lifecycle.js.map +1 -0
  14. package/build/server/formatting/markdown.d.ts +2 -0
  15. package/build/server/formatting/markdown.js +1 -1
  16. package/build/server/formatting/markdown.js.map +1 -1
  17. package/build/server/handlers/validate.d.ts +6 -0
  18. package/build/server/handlers/validate.js +11 -0
  19. package/build/server/handlers/validate.js.map +1 -1
  20. package/build/server/scratchpad/adapters/import-doc.js +28 -3
  21. package/build/server/scratchpad/adapters/import-doc.js.map +1 -1
  22. package/build/server/scratchpad/docs-sync.d.ts +15 -3
  23. package/build/server/scratchpad/docs-sync.js +114 -45
  24. package/build/server/scratchpad/docs-sync.js.map +1 -1
  25. package/build/server/scratchpad/handler.js +5 -0
  26. package/build/server/scratchpad/handler.js.map +1 -1
  27. package/build/services/calendar/patch.js +62 -8
  28. package/build/services/calendar/patch.js.map +1 -1
  29. package/build/services/docs/patch.js +321 -16
  30. package/build/services/docs/patch.js.map +1 -1
  31. package/build/version.d.ts +1 -1
  32. package/build/version.js +1 -1
  33. package/package.json +1 -1
@@ -51,10 +51,10 @@ operations:
51
51
  required: true
52
52
  name:
53
53
  type: string
54
- description: "File name in Drive (defaults to local name)"
54
+ description: "File name in Drive. On `upload`, defaults to the local file's name. On `copy`, the name for the copy — without it Drive names it 'Copy of <original>'. On `update`, the new name (a rename)."
55
55
  parentFolderId:
56
56
  type: string
57
- description: "Destination folder ID"
57
+ description: "Destination folder ID. On `copy`, defaults to the source file's folder."
58
58
 
59
59
  viewImage:
60
60
  type: detail
@@ -63,7 +63,7 @@ operations:
63
63
  params:
64
64
  fileId:
65
65
  type: string
66
- description: "File ID of the image to view"
66
+ description: "File ID"
67
67
  required: true
68
68
  defaults:
69
69
  supportsAllDrives: true
@@ -75,7 +75,7 @@ operations:
75
75
  params:
76
76
  fileId:
77
77
  type: string
78
- description: "File ID to download"
78
+ description: "File ID"
79
79
  required: true
80
80
  outputPath:
81
81
  type: string
@@ -91,14 +91,14 @@ operations:
91
91
  params:
92
92
  fileId:
93
93
  type: string
94
- description: "File ID to copy"
94
+ description: "File ID"
95
95
  required: true
96
96
  name:
97
97
  type: string
98
- description: "Name for the copy (without it, Drive names it 'Copy of <original>')"
98
+ description: "File name in Drive. On `upload`, defaults to the local file's name. On `copy`, the name for the copy — without it Drive names it 'Copy of <original>'. On `update`, the new name (a rename)."
99
99
  parentFolderId:
100
100
  type: string
101
- description: "Folder ID to place the copy in (defaults to the source's folder)"
101
+ description: "Destination folder ID. On `copy`, defaults to the source file's folder."
102
102
  defaults:
103
103
  supportsAllDrives: true
104
104
 
@@ -109,11 +109,11 @@ operations:
109
109
  params:
110
110
  fileId:
111
111
  type: string
112
- description: "File ID to update"
112
+ description: "File ID"
113
113
  required: true
114
114
  name:
115
115
  type: string
116
- description: "New file name (rename)"
116
+ description: "File name in Drive. On `upload`, defaults to the local file's name. On `copy`, the name for the copy — without it Drive names it 'Copy of <original>'. On `update`, the new name (a rename)."
117
117
  addParents:
118
118
  type: string
119
119
  description: "Comma-separated folder ID(s) to add as parents (move into a folder)"
@@ -130,7 +130,7 @@ operations:
130
130
  params:
131
131
  fileId:
132
132
  type: string
133
- description: "File ID to delete"
133
+ description: "File ID"
134
134
  required: true
135
135
  defaults:
136
136
  supportsAllDrives: true
@@ -142,7 +142,7 @@ operations:
142
142
  params:
143
143
  fileId:
144
144
  type: string
145
- description: "File ID to export"
145
+ description: "File ID"
146
146
  required: true
147
147
  mimeType:
148
148
  type: string
@@ -150,7 +150,7 @@ operations:
150
150
  required: true
151
151
  outputPath:
152
152
  type: string
153
- description: "Local path to save exported file"
153
+ description: "Local path to save the file"
154
154
  defaults:
155
155
  supportsAllDrives: true
156
156
 
@@ -175,7 +175,7 @@ operations:
175
175
  params:
176
176
  fileId:
177
177
  type: string
178
- description: "File ID to share"
178
+ description: "File ID"
179
179
  required: true
180
180
  shareEmail:
181
181
  type: string
@@ -258,7 +258,7 @@ operations:
258
258
  required: true
259
259
  content:
260
260
  type: string
261
- description: "Comment text"
261
+ description: "Comment text. On `replyToComment`, the reply text."
262
262
  required: true
263
263
  quotedText:
264
264
  type: string
@@ -299,11 +299,11 @@ operations:
299
299
  required: true
300
300
  commentId:
301
301
  type: string
302
- description: "Comment ID to reply to"
302
+ description: "Comment ID"
303
303
  required: true
304
304
  content:
305
305
  type: string
306
- description: "Reply text"
306
+ description: "Comment text. On `replyToComment`, the reply text."
307
307
  required: true
308
308
  defaults:
309
309
  fields: "id, content, htmlContent, author(displayName), createdTime"
@@ -60,14 +60,14 @@ operations:
60
60
  required: true
61
61
  body:
62
62
  type: string
63
- description: "Email body text"
63
+ description: "Email body text. On `forward`, an optional note prepended ABOVE the forwarded message."
64
64
  required: true
65
65
  from:
66
66
  type: string
67
67
  description: "Sender email or RFC 2822 mailbox for a verified Gmail Send As alias"
68
68
  cc:
69
69
  type: string
70
- description: "CC email(s), comma-separated"
70
+ description: "CC email(s), comma-separated. On `replyAll` these are ADDITIONAL — they do not replace the recipients already on the thread."
71
71
  bcc:
72
72
  type: string
73
73
  description: "BCC email(s), comma-separated"
@@ -87,11 +87,11 @@ operations:
87
87
  params:
88
88
  messageId:
89
89
  type: string
90
- description: "Message ID to reply to"
90
+ description: "Email message ID"
91
91
  required: true
92
92
  body:
93
93
  type: string
94
- description: "Reply body text"
94
+ description: "Email body text. On `forward`, an optional note prepended ABOVE the forwarded message."
95
95
  required: true
96
96
  attachments:
97
97
  type: string
@@ -109,15 +109,15 @@ operations:
109
109
  params:
110
110
  messageId:
111
111
  type: string
112
- description: "Message ID to reply to"
112
+ description: "Email message ID"
113
113
  required: true
114
114
  body:
115
115
  type: string
116
- description: "Reply body text"
116
+ description: "Email body text. On `forward`, an optional note prepended ABOVE the forwarded message."
117
117
  required: true
118
118
  cc:
119
119
  type: string
120
- description: "Additional CC email(s), comma-separated"
120
+ description: "CC email(s), comma-separated. On `replyAll` these are ADDITIONAL — they do not replace the recipients already on the thread."
121
121
  attachments:
122
122
  type: string
123
123
  description: "Workspace filenames to attach, comma-separated (files must exist in workspace via manage_workspace). Creates draft when present."
@@ -134,7 +134,7 @@ operations:
134
134
  params:
135
135
  messageId:
136
136
  type: string
137
- description: "Message ID to forward"
137
+ description: "Email message ID"
138
138
  required: true
139
139
  to:
140
140
  type: string
@@ -142,7 +142,7 @@ operations:
142
142
  required: true
143
143
  body:
144
144
  type: string
145
- description: "Optional note to prepend above forwarded message"
145
+ description: "Email body text. On `forward`, an optional note prepended ABOVE the forwarded message."
146
146
 
147
147
  # --- Inbox management ---
148
148
 
@@ -165,7 +165,7 @@ operations:
165
165
  params:
166
166
  messageId:
167
167
  type: string
168
- description: "Message ID to trash"
168
+ description: "Email message ID"
169
169
  required: true
170
170
  maps_to: id
171
171
  defaults:
@@ -178,7 +178,7 @@ operations:
178
178
  params:
179
179
  messageId:
180
180
  type: string
181
- description: "Message ID to restore"
181
+ description: "Email message ID"
182
182
  required: true
183
183
  maps_to: id
184
184
  defaults:
@@ -191,11 +191,11 @@ operations:
191
191
  params:
192
192
  messageId:
193
193
  type: string
194
- description: "Message ID containing the attachment"
194
+ description: "Email message ID"
195
195
  required: true
196
196
  filename:
197
197
  type: string
198
- description: "Filename to save as (from the read response, e.g. 'invoice_template.md')"
198
+ description: "Attachment filename, exactly as it appears in the `read` response (e.g. 'invoice_template.md')"
199
199
  required: true
200
200
  defaults:
201
201
  userId: me
@@ -207,11 +207,11 @@ operations:
207
207
  params:
208
208
  messageId:
209
209
  type: string
210
- description: "Message ID containing the attachment"
210
+ description: "Email message ID"
211
211
  required: true
212
212
  filename:
213
213
  type: string
214
- description: "Image filename from the read response"
214
+ description: "Attachment filename, exactly as it appears in the `read` response (e.g. 'invoice_template.md')"
215
215
  required: true
216
216
  defaults:
217
217
  userId: me
@@ -223,7 +223,7 @@ operations:
223
223
  params:
224
224
  messageId:
225
225
  type: string
226
- description: "Message ID to modify"
226
+ description: "Email message ID"
227
227
  required: true
228
228
  maps_to: id
229
229
  addLabelIds:
@@ -253,11 +253,11 @@ operations:
253
253
  params:
254
254
  query:
255
255
  type: string
256
- description: "Gmail search query to filter threads"
256
+ description: "Gmail search query (e.g. \"from:alice subject:meeting has:attachment\")"
257
257
  maps_to: q
258
258
  maxResults:
259
259
  type: number
260
- description: "Max threads to return (default: 10, max: 50)"
260
+ description: "Max results (default: 10, max: 50)"
261
261
  default: 10
262
262
  max: 50
263
263
  defaults:
@@ -13,10 +13,10 @@ operations:
13
13
  params:
14
14
  filter:
15
15
  type: string
16
- description: "EBNF filter (e.g. 'space.meeting_code = \"abc-mnop-xyz\"' or 'start_time>=\"2026-01-01T00:00:00Z\"')"
16
+ description: "EBNF filter. On `listConferences`, e.g. 'space.meeting_code = \"abc-mnop-xyz\"' or 'start_time>=\"2026-01-01T00:00:00Z\"'. On `listParticipants`, e.g. 'latest_end_time IS NULL' for active participants."
17
17
  maxResults:
18
18
  type: number
19
- description: "Max conferences to return (default: 25, max: 100)"
19
+ description: "Max results per page, as default/ceiling. Differs by operation: `listConferences` 25/100, `listParticipants` 100/250, `listTranscriptEntries` 100/100. (Google's own default for transcript entries is 10; this tool raises it.)"
20
20
  default: 25
21
21
  max: 100
22
22
  maps_to: pageSize
@@ -28,7 +28,7 @@ operations:
28
28
  params:
29
29
  conferenceId:
30
30
  type: string
31
- description: "Conference record ID (from listConferences)"
31
+ description: "Conference record ID (from `listConferences`)"
32
32
  required: true
33
33
  maps_to: name
34
34
 
@@ -41,15 +41,15 @@ operations:
41
41
  params:
42
42
  conferenceId:
43
43
  type: string
44
- description: "Conference record ID"
44
+ description: "Conference record ID (from `listConferences`)"
45
45
  required: true
46
46
  maps_to: parent
47
47
  filter:
48
48
  type: string
49
- description: "Filter (e.g. 'latest_end_time IS NULL' for active participants)"
49
+ description: "EBNF filter. On `listConferences`, e.g. 'space.meeting_code = \"abc-mnop-xyz\"' or 'start_time>=\"2026-01-01T00:00:00Z\"'. On `listParticipants`, e.g. 'latest_end_time IS NULL' for active participants."
50
50
  maxResults:
51
51
  type: number
52
- description: "Max participants (default: 100, max: 250)"
52
+ description: "Max results per page, as default/ceiling. Differs by operation: `listConferences` 25/100, `listParticipants` 100/250, `listTranscriptEntries` 100/100. (Google's own default for transcript entries is 10; this tool raises it.)"
53
53
  default: 100
54
54
  max: 250
55
55
  maps_to: pageSize
@@ -63,7 +63,7 @@ operations:
63
63
  params:
64
64
  conferenceId:
65
65
  type: string
66
- description: "Conference record ID"
66
+ description: "Conference record ID (from `listConferences`)"
67
67
  required: true
68
68
  maps_to: parent
69
69
 
@@ -74,7 +74,7 @@ operations:
74
74
  params:
75
75
  transcriptName:
76
76
  type: string
77
- description: "Transcript resource name (from listTranscripts)"
77
+ description: "Transcript resource name (from `listTranscripts`, e.g. conferenceRecords/.../transcripts/...)"
78
78
  required: true
79
79
  maps_to: name
80
80
 
@@ -85,12 +85,12 @@ operations:
85
85
  params:
86
86
  transcriptName:
87
87
  type: string
88
- description: "Transcript resource name (e.g. conferenceRecords/.../transcripts/...)"
88
+ description: "Transcript resource name (from `listTranscripts`, e.g. conferenceRecords/.../transcripts/...)"
89
89
  required: true
90
90
  maps_to: parent
91
91
  maxResults:
92
92
  type: number
93
- description: "Max entries per page (default: 10, max: 100)"
93
+ description: "Max results per page, as default/ceiling. Differs by operation: `listConferences` 25/100, `listParticipants` 100/250, `listTranscriptEntries` 100/100. (Google's own default for transcript entries is 10; this tool raises it.)"
94
94
  default: 100
95
95
  max: 100
96
96
  maps_to: pageSize
@@ -104,7 +104,7 @@ operations:
104
104
  params:
105
105
  conferenceId:
106
106
  type: string
107
- description: "Conference record ID"
107
+ description: "Conference record ID (from `listConferences`)"
108
108
  required: true
109
109
  maps_to: parent
110
110
 
@@ -128,7 +128,7 @@ operations:
128
128
  params:
129
129
  conferenceId:
130
130
  type: string
131
- description: "Conference record ID (from listConferences)"
131
+ description: "Conference record ID (from `listConferences`)"
132
132
  required: true
133
133
  pageToken:
134
134
  type: string
@@ -143,7 +143,7 @@ operations:
143
143
  params:
144
144
  conferenceId:
145
145
  type: string
146
- description: "Conference record ID"
146
+ description: "Conference record ID (from `listConferences`)"
147
147
  required: true
148
148
  maps_to: parent
149
149
 
@@ -11,7 +11,7 @@ operations:
11
11
  params:
12
12
  spreadsheetId:
13
13
  type: string
14
- description: "Spreadsheet ID"
14
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
15
15
  required: true
16
16
 
17
17
  create:
@@ -21,7 +21,7 @@ operations:
21
21
  params:
22
22
  title:
23
23
  type: string
24
- description: "Spreadsheet title (defaults to 'Untitled spreadsheet')"
24
+ description: "On `create`, the spreadsheet title (defaults to 'Untitled spreadsheet'); on `renameSpreadsheet`, its new title. On `addSheet`, the name of the new TAB; on `renameSheet`, that tab's new title; on `duplicateSheet`, the name for the copy (defaults to 'Copy of <source>')."
25
25
 
26
26
  read:
27
27
  type: detail
@@ -30,11 +30,11 @@ operations:
30
30
  params:
31
31
  spreadsheetId:
32
32
  type: string
33
- description: "Spreadsheet ID"
33
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
34
34
  required: true
35
35
  range:
36
36
  type: string
37
- description: "Range to read (e.g. 'Sheet1!A1:D10' or just 'Sheet1')"
37
+ description: "A1 notation range (e.g. 'Sheet1!A1:D10', or just 'Sheet1' for a whole tab). On `append`, the target tab — defaults to 'Sheet1'; use 'MyTab' or 'MyTab!A:Z' to append to a specific one."
38
38
  required: true
39
39
 
40
40
  append:
@@ -44,17 +44,17 @@ operations:
44
44
  params:
45
45
  spreadsheetId:
46
46
  type: string
47
- description: "Spreadsheet ID"
47
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
48
48
  required: true
49
49
  range:
50
50
  type: string
51
- description: "Target range; defaults to 'Sheet1'. Use 'MyTab' or 'MyTab!A:Z' to append to a specific tab."
51
+ description: "A1 notation range (e.g. 'Sheet1!A1:D10', or just 'Sheet1' for a whole tab). On `append`, the target tab — defaults to 'Sheet1'; use 'MyTab' or 'MyTab!A:Z' to append to a specific one."
52
52
  values:
53
53
  type: string
54
54
  description: "Comma-separated values for a single row (e.g. 'Alice,100,true')"
55
55
  jsonValues:
56
56
  type: string
57
- description: "JSON 2D array of rows for bulk insert (e.g. '[[\"a\",\"b\"],[\"c\",\"d\"]]')"
57
+ description: "JSON 2D array of rows (e.g. '[[\"a\",\"b\"],[\"c\",\"d\"]]'). Use for bulk and multi-row writes."
58
58
  valueInputOption:
59
59
  type: string
60
60
  description: "How input is interpreted: USER_ENTERED (default, parses formulas/types) or RAW"
@@ -68,11 +68,11 @@ operations:
68
68
  params:
69
69
  spreadsheetId:
70
70
  type: string
71
- description: "Spreadsheet ID"
71
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
72
72
  required: true
73
73
  range:
74
74
  type: string
75
- description: "A1 notation range (e.g. 'Sheet1!A1:B10')"
75
+ description: "A1 notation range (e.g. 'Sheet1!A1:D10', or just 'Sheet1' for a whole tab). On `append`, the target tab — defaults to 'Sheet1'; use 'MyTab' or 'MyTab!A:Z' to append to a specific one."
76
76
  required: true
77
77
 
78
78
  updateValues:
@@ -82,18 +82,18 @@ operations:
82
82
  params:
83
83
  spreadsheetId:
84
84
  type: string
85
- description: "Spreadsheet ID"
85
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
86
86
  required: true
87
87
  range:
88
88
  type: string
89
- description: "A1 notation range to write to"
89
+ description: "A1 notation range (e.g. 'Sheet1!A1:D10', or just 'Sheet1' for a whole tab). On `append`, the target tab — defaults to 'Sheet1'; use 'MyTab' or 'MyTab!A:Z' to append to a specific one."
90
90
  required: true
91
91
  values:
92
92
  type: string
93
93
  description: "Comma-separated values for a single row (e.g. 'Alice,100,true')"
94
94
  jsonValues:
95
95
  type: string
96
- description: "JSON 2D array of rows (e.g. '[[\"a\",\"b\"],[\"c\",\"d\"]]'). Use for multi-row writes."
96
+ description: "JSON 2D array of rows (e.g. '[[\"a\",\"b\"],[\"c\",\"d\"]]'). Use for bulk and multi-row writes."
97
97
  valueInputOption:
98
98
  type: string
99
99
  description: "How input is interpreted: USER_ENTERED (default, parses formulas/types) or RAW"
@@ -107,11 +107,11 @@ operations:
107
107
  params:
108
108
  spreadsheetId:
109
109
  type: string
110
- description: "Spreadsheet ID"
110
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
111
111
  required: true
112
112
  range:
113
113
  type: string
114
- description: "A1 notation range to clear"
114
+ description: "A1 notation range (e.g. 'Sheet1!A1:D10', or just 'Sheet1' for a whole tab). On `append`, the target tab — defaults to 'Sheet1'; use 'MyTab' or 'MyTab!A:Z' to append to a specific one."
115
115
  required: true
116
116
 
117
117
  addSheet:
@@ -121,11 +121,11 @@ operations:
121
121
  params:
122
122
  spreadsheetId:
123
123
  type: string
124
- description: "Spreadsheet ID"
124
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
125
125
  required: true
126
126
  title:
127
127
  type: string
128
- description: "Name of the new sheet tab"
128
+ description: "On `create`, the spreadsheet title (defaults to 'Untitled spreadsheet'); on `renameSpreadsheet`, its new title. On `addSheet`, the name of the new TAB; on `renameSheet`, that tab's new title; on `duplicateSheet`, the name for the copy (defaults to 'Copy of <source>')."
129
129
  required: true
130
130
  index:
131
131
  type: number
@@ -144,15 +144,15 @@ operations:
144
144
  params:
145
145
  spreadsheetId:
146
146
  type: string
147
- description: "Spreadsheet ID"
147
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
148
148
  required: true
149
149
  sheetId:
150
150
  type: number
151
- description: "Sheet ID of the tab to rename (from manage_sheets get)"
151
+ description: "Sheet ID of the tab, from `manage_sheets get`. On `duplicateSheet` and `copySheetTo`, the SOURCE tab to copy."
152
152
  required: true
153
153
  title:
154
154
  type: string
155
- description: "New title for the tab"
155
+ description: "On `create`, the spreadsheet title (defaults to 'Untitled spreadsheet'); on `renameSpreadsheet`, its new title. On `addSheet`, the name of the new TAB; on `renameSheet`, that tab's new title; on `duplicateSheet`, the name for the copy (defaults to 'Copy of <source>')."
156
156
  required: true
157
157
 
158
158
  deleteSheet:
@@ -162,11 +162,11 @@ operations:
162
162
  params:
163
163
  spreadsheetId:
164
164
  type: string
165
- description: "Spreadsheet ID"
165
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
166
166
  required: true
167
167
  sheetId:
168
168
  type: number
169
- description: "Sheet ID of the tab to delete"
169
+ description: "Sheet ID of the tab, from `manage_sheets get`. On `duplicateSheet` and `copySheetTo`, the SOURCE tab to copy."
170
170
  required: true
171
171
 
172
172
  duplicateSheet:
@@ -176,18 +176,18 @@ operations:
176
176
  params:
177
177
  spreadsheetId:
178
178
  type: string
179
- description: "Spreadsheet ID"
179
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
180
180
  required: true
181
181
  sheetId:
182
182
  type: number
183
- description: "Source sheet ID (the tab to copy)"
183
+ description: "Sheet ID of the tab, from `manage_sheets get`. On `duplicateSheet` and `copySheetTo`, the SOURCE tab to copy."
184
184
  required: true
185
185
  title:
186
186
  type: string
187
- description: "Name for the duplicated sheet (defaults to 'Copy of <source>')"
187
+ description: "On `create`, the spreadsheet title (defaults to 'Untitled spreadsheet'); on `renameSpreadsheet`, its new title. On `addSheet`, the name of the new TAB; on `renameSheet`, that tab's new title; on `duplicateSheet`, the name for the copy (defaults to 'Copy of <source>')."
188
188
  index:
189
189
  type: number
190
- description: "Position to insert the duplicate (0-based)"
190
+ description: "Position among tabs (0-based). Appended at the end if omitted."
191
191
 
192
192
  renameSpreadsheet:
193
193
  type: action
@@ -196,11 +196,11 @@ operations:
196
196
  params:
197
197
  spreadsheetId:
198
198
  type: string
199
- description: "Spreadsheet ID"
199
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
200
200
  required: true
201
201
  title:
202
202
  type: string
203
- description: "New spreadsheet title"
203
+ description: "On `create`, the spreadsheet title (defaults to 'Untitled spreadsheet'); on `renameSpreadsheet`, its new title. On `addSheet`, the name of the new TAB; on `renameSheet`, that tab's new title; on `duplicateSheet`, the name for the copy (defaults to 'Copy of <source>')."
204
204
  required: true
205
205
 
206
206
  copySheetTo:
@@ -210,11 +210,11 @@ operations:
210
210
  params:
211
211
  spreadsheetId:
212
212
  type: string
213
- description: "Source spreadsheet ID"
213
+ description: "Spreadsheet ID. On `copySheetTo`, the SOURCE spreadsheet."
214
214
  required: true
215
215
  sheetId:
216
216
  type: number
217
- description: "Source sheet ID (the tab to copy)"
217
+ description: "Sheet ID of the tab, from `manage_sheets get`. On `duplicateSheet` and `copySheetTo`, the SOURCE tab to copy."
218
218
  required: true
219
219
  destinationSpreadsheetId:
220
220
  type: string
@@ -18,7 +18,7 @@ operations:
18
18
  params:
19
19
  taskListId:
20
20
  type: string
21
- description: "Task list ID"
21
+ description: "Task list ID (use `listTaskLists` to find)"
22
22
  required: true
23
23
  maps_to: tasklist
24
24
 
@@ -32,7 +32,7 @@ operations:
32
32
  params:
33
33
  title:
34
34
  type: string
35
- description: "Task list name"
35
+ description: "On `createTaskList`, the task list name. On `create` and `update`, the task title."
36
36
  required: true
37
37
 
38
38
  deleteTaskList:
@@ -42,7 +42,7 @@ operations:
42
42
  params:
43
43
  taskListId:
44
44
  type: string
45
- description: "Task list ID to delete"
45
+ description: "Task list ID (use `listTaskLists` to find)"
46
46
  required: true
47
47
  maps_to: tasklist
48
48
 
@@ -55,7 +55,7 @@ operations:
55
55
  params:
56
56
  taskListId:
57
57
  type: string
58
- description: "Task list ID (use listTaskLists to find)"
58
+ description: "Task list ID (use `listTaskLists` to find)"
59
59
  required: true
60
60
  maps_to: tasklist
61
61
  showCompleted:
@@ -74,7 +74,7 @@ operations:
74
74
  params:
75
75
  taskListId:
76
76
  type: string
77
- description: "Task list ID"
77
+ description: "Task list ID (use `listTaskLists` to find)"
78
78
  required: true
79
79
  maps_to: tasklist
80
80
  taskId:
@@ -94,12 +94,12 @@ operations:
94
94
  params:
95
95
  taskListId:
96
96
  type: string
97
- description: "Task list ID"
97
+ description: "Task list ID (use `listTaskLists` to find)"
98
98
  required: true
99
99
  maps_to: tasklist
100
100
  title:
101
101
  type: string
102
- description: "Task title"
102
+ description: "On `createTaskList`, the task list name. On `create` and `update`, the task title."
103
103
  required: true
104
104
  notes:
105
105
  type: string
@@ -118,7 +118,7 @@ operations:
118
118
  params:
119
119
  taskListId:
120
120
  type: string
121
- description: "Task list ID"
121
+ description: "Task list ID (use `listTaskLists` to find)"
122
122
  required: true
123
123
  maps_to: tasklist
124
124
  taskId:
@@ -128,13 +128,13 @@ operations:
128
128
  maps_to: task
129
129
  title:
130
130
  type: string
131
- description: "New task title"
131
+ description: "On `createTaskList`, the task list name. On `create` and `update`, the task title."
132
132
  notes:
133
133
  type: string
134
- description: "New task notes / details"
134
+ description: "Task notes / details"
135
135
  due:
136
136
  type: string
137
- description: "New due date (RFC 3339)"
137
+ description: "Due date (RFC 3339, e.g. 2026-07-20T00:00:00.000Z — Google stores the date, not the time)"
138
138
  status:
139
139
  type: string
140
140
  description: "Task status"
@@ -147,7 +147,7 @@ operations:
147
147
  params:
148
148
  taskListId:
149
149
  type: string
150
- description: "Task list ID"
150
+ description: "Task list ID (use `listTaskLists` to find)"
151
151
  required: true
152
152
  maps_to: tasklist
153
153
  taskId:
@@ -165,11 +165,11 @@ operations:
165
165
  params:
166
166
  taskListId:
167
167
  type: string
168
- description: "Task list ID"
168
+ description: "Task list ID (use `listTaskLists` to find)"
169
169
  required: true
170
170
  maps_to: tasklist
171
171
  taskId:
172
172
  type: string
173
- description: "Task ID to delete"
173
+ description: "Task ID"
174
174
  required: true
175
175
  maps_to: task