Skip to content

Commit 40016e7

Browse files
authored
feat(google-tasks): add Google Tasks integration (#3342)
* feat(google-tasks): add Google Tasks integration * fix(google-tasks): return actual taskId in delete response * fix(google-tasks): use absolute imports and fix registry order * fix(google-tasks): rename list-task-lists to list_task_lists for doc generator * improvement(google-tasks): destructure task and taskList outputs with typed schemas * ran lint * improvement(google-tasks): add wandConfig for due date timestamp generation
1 parent e4fb8b2 commit 40016e7

File tree

20 files changed

+1386
-0
lines changed

20 files changed

+1386
-0
lines changed

apps/docs/components/icons.tsx

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1302,6 +1302,21 @@ export function GoogleCalendarIcon(props: SVGProps<SVGSVGElement>) {
13021302
)
13031303
}
13041304

1305+
export function GoogleTasksIcon(props: SVGProps<SVGSVGElement>) {
1306+
return (
1307+
<svg {...props} viewBox='0 0 527.1 500' xmlns='http://www.w3.org/2000/svg'>
1308+
<polygon
1309+
fill='#0066DA'
1310+
points='410.4,58.3 368.8,81.2 348.2,120.6 368.8,168.8 407.8,211 450,187.5 475.9,142.8 450,87.5'
1311+
/>
1312+
<path
1313+
fill='#2684FC'
1314+
d='M249.3,219.4l98.9-98.9c29.1,22.1,50.5,53.8,59.6,90.4L272.1,346.7c-12.2,12.2-32,12.2-44.2,0l-91.5-91.5 c-9.8-9.8-9.8-25.6,0-35.3l39-39c9.8-9.8,25.6-9.8,35.3,0L249.3,219.4z M519.8,63.6l-39.7-39.7c-9.7-9.7-25.6-9.7-35.3,0 l-34.4,34.4c27.5,23,49.9,51.8,65.5,84.5l43.9-43.9C529.6,89.2,529.6,73.3,519.8,63.6z M412.5,250c0,89.8-72.8,162.5-162.5,162.5 S87.5,339.8,87.5,250S160.2,87.5,250,87.5c36.9,0,70.9,12.3,98.2,33.1l62.2-62.2C367,21.9,311.1,0,250,0C111.9,0,0,111.9,0,250 s111.9,250,250,250s250-111.9,250-250c0-38.3-8.7-74.7-24.1-107.2L407.8,211C410.8,223.5,412.5,236.6,412.5,250z'
1315+
/>
1316+
</svg>
1317+
)
1318+
}
1319+
13051320
export function SupabaseIcon(props: SVGProps<SVGSVGElement>) {
13061321
const id = useId()
13071322
const gradient0 = `supabase_paint0_${id}`

apps/docs/components/ui/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ import {
5353
GoogleMapsIcon,
5454
GoogleSheetsIcon,
5555
GoogleSlidesIcon,
56+
GoogleTasksIcon,
5657
GoogleTranslateIcon,
5758
GoogleVaultIcon,
5859
GrafanaIcon,
@@ -200,6 +201,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
200201
google_search: GoogleIcon,
201202
google_sheets_v2: GoogleSheetsIcon,
202203
google_slides_v2: GoogleSlidesIcon,
204+
google_tasks: GoogleTasksIcon,
203205
google_translate: GoogleTranslateIcon,
204206
google_vault: GoogleVaultIcon,
205207
grafana: GrafanaIcon,
Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
---
2+
title: Google Tasks
3+
description: Manage Google Tasks
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="google_tasks"
10+
color="#E0E0E0"
11+
/>
12+
13+
## Usage Instructions
14+
15+
Integrate Google Tasks into your workflow. Create, read, update, delete, and list tasks and task lists.
16+
17+
18+
19+
## Tools
20+
21+
### `google_tasks_create`
22+
23+
Create a new task in a Google Tasks list
24+
25+
#### Input
26+
27+
| Parameter | Type | Required | Description |
28+
| --------- | ---- | -------- | ----------- |
29+
| `taskListId` | string | No | Task list ID \(defaults to primary task list "@default"\) |
30+
| `title` | string | Yes | Title of the task \(max 1024 characters\) |
31+
| `notes` | string | No | Notes/description for the task \(max 8192 characters\) |
32+
| `due` | string | No | Due date in RFC 3339 format \(e.g., 2025-06-03T00:00:00.000Z\) |
33+
| `status` | string | No | Task status: "needsAction" or "completed" |
34+
| `parent` | string | No | Parent task ID to create this task as a subtask. Omit for top-level tasks. |
35+
| `previous` | string | No | Previous sibling task ID to position after. Omit to place first among siblings. |
36+
37+
#### Output
38+
39+
| Parameter | Type | Description |
40+
| --------- | ---- | ----------- |
41+
| `id` | string | Task ID |
42+
| `title` | string | Task title |
43+
| `notes` | string | Task notes |
44+
| `status` | string | Task status \(needsAction or completed\) |
45+
| `due` | string | Due date |
46+
| `updated` | string | Last modification time |
47+
| `selfLink` | string | URL for the task |
48+
| `webViewLink` | string | Link to task in Google Tasks UI |
49+
| `parent` | string | Parent task ID |
50+
| `position` | string | Position among sibling tasks |
51+
| `completed` | string | Completion date |
52+
| `deleted` | boolean | Whether the task is deleted |
53+
54+
### `google_tasks_list`
55+
56+
List all tasks in a Google Tasks list
57+
58+
#### Input
59+
60+
| Parameter | Type | Required | Description |
61+
| --------- | ---- | -------- | ----------- |
62+
| `taskListId` | string | No | Task list ID \(defaults to primary task list "@default"\) |
63+
| `maxResults` | number | No | Maximum number of tasks to return \(default 20, max 100\) |
64+
| `pageToken` | string | No | Token for pagination |
65+
| `showCompleted` | boolean | No | Whether to show completed tasks \(default true\) |
66+
| `showDeleted` | boolean | No | Whether to show deleted tasks \(default false\) |
67+
| `showHidden` | boolean | No | Whether to show hidden tasks \(default false\) |
68+
| `dueMin` | string | No | Lower bound for due date filter \(RFC 3339 timestamp\) |
69+
| `dueMax` | string | No | Upper bound for due date filter \(RFC 3339 timestamp\) |
70+
| `completedMin` | string | No | Lower bound for task completion date \(RFC 3339 timestamp\) |
71+
| `completedMax` | string | No | Upper bound for task completion date \(RFC 3339 timestamp\) |
72+
| `updatedMin` | string | No | Lower bound for last modification time \(RFC 3339 timestamp\) |
73+
74+
#### Output
75+
76+
| Parameter | Type | Description |
77+
| --------- | ---- | ----------- |
78+
| `tasks` | json | Array of tasks with id, title, notes, status, due, updated, and more |
79+
| `nextPageToken` | string | Token for retrieving the next page of results |
80+
81+
### `google_tasks_get`
82+
83+
Retrieve a specific task by ID from a Google Tasks list
84+
85+
#### Input
86+
87+
| Parameter | Type | Required | Description |
88+
| --------- | ---- | -------- | ----------- |
89+
| `taskListId` | string | No | Task list ID \(defaults to primary task list "@default"\) |
90+
| `taskId` | string | Yes | The ID of the task to retrieve |
91+
92+
#### Output
93+
94+
| Parameter | Type | Description |
95+
| --------- | ---- | ----------- |
96+
| `id` | string | Task ID |
97+
| `title` | string | Task title |
98+
| `notes` | string | Task notes |
99+
| `status` | string | Task status \(needsAction or completed\) |
100+
| `due` | string | Due date |
101+
| `updated` | string | Last modification time |
102+
| `selfLink` | string | URL for the task |
103+
| `webViewLink` | string | Link to task in Google Tasks UI |
104+
| `parent` | string | Parent task ID |
105+
| `position` | string | Position among sibling tasks |
106+
| `completed` | string | Completion date |
107+
| `deleted` | boolean | Whether the task is deleted |
108+
109+
### `google_tasks_update`
110+
111+
Update an existing task in a Google Tasks list
112+
113+
#### Input
114+
115+
| Parameter | Type | Required | Description |
116+
| --------- | ---- | -------- | ----------- |
117+
| `taskListId` | string | No | Task list ID \(defaults to primary task list "@default"\) |
118+
| `taskId` | string | Yes | The ID of the task to update |
119+
| `title` | string | No | New title for the task |
120+
| `notes` | string | No | New notes for the task |
121+
| `due` | string | No | New due date in RFC 3339 format |
122+
| `status` | string | No | New status: "needsAction" or "completed" |
123+
124+
#### Output
125+
126+
| Parameter | Type | Description |
127+
| --------- | ---- | ----------- |
128+
| `id` | string | Task ID |
129+
| `title` | string | Task title |
130+
| `notes` | string | Task notes |
131+
| `status` | string | Task status \(needsAction or completed\) |
132+
| `due` | string | Due date |
133+
| `updated` | string | Last modification time |
134+
| `selfLink` | string | URL for the task |
135+
| `webViewLink` | string | Link to task in Google Tasks UI |
136+
| `parent` | string | Parent task ID |
137+
| `position` | string | Position among sibling tasks |
138+
| `completed` | string | Completion date |
139+
| `deleted` | boolean | Whether the task is deleted |
140+
141+
### `google_tasks_delete`
142+
143+
Delete a task from a Google Tasks list
144+
145+
#### Input
146+
147+
| Parameter | Type | Required | Description |
148+
| --------- | ---- | -------- | ----------- |
149+
| `taskListId` | string | No | Task list ID \(defaults to primary task list "@default"\) |
150+
| `taskId` | string | Yes | The ID of the task to delete |
151+
152+
#### Output
153+
154+
| Parameter | Type | Description |
155+
| --------- | ---- | ----------- |
156+
| `taskId` | string | Deleted task ID |
157+
| `deleted` | boolean | Whether deletion was successful |
158+
159+
### `google_tasks_list_task_lists`
160+
161+
Retrieve all task lists for the authenticated user
162+
163+
#### Input
164+
165+
| Parameter | Type | Required | Description |
166+
| --------- | ---- | -------- | ----------- |
167+
| `maxResults` | number | No | Maximum number of task lists to return \(default 1000, max 1000\) |
168+
| `pageToken` | string | No | Token for pagination |
169+
170+
#### Output
171+
172+
| Parameter | Type | Description |
173+
| --------- | ---- | ----------- |
174+
| `taskLists` | json | Array of task lists with id, title, updated, and selfLink |
175+
| `nextPageToken` | string | Token for retrieving the next page of results |
176+
177+

apps/docs/content/docs/en/tools/meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
"google_search",
4949
"google_sheets",
5050
"google_slides",
51+
"google_tasks",
5152
"google_translate",
5253
"google_vault",
5354
"grafana",

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/credential-selector/components/oauth-required-modal.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ const SCOPE_DESCRIPTIONS: Record<string, string> = {
4040
'https://www.googleapis.com/auth/drive.file': 'View and manage Google Drive files',
4141
'https://www.googleapis.com/auth/drive': 'Access all Google Drive files',
4242
'https://www.googleapis.com/auth/calendar': 'View and manage calendar',
43+
'https://www.googleapis.com/auth/tasks': 'Create, read, update, and delete Google Tasks',
4344
'https://www.googleapis.com/auth/userinfo.email': 'View email address',
4445
'https://www.googleapis.com/auth/userinfo.profile': 'View basic profile info',
4546
'https://www.googleapis.com/auth/forms.body': 'View and manage Google Forms',

0 commit comments

Comments
 (0)