list_tasks from yesterday reads the task list. Today you write to it. Same safety principle as send_email and create_event: test with a task you can delete, confirm it appeared, then automate.
GOOGLETASKS_INSERT_TASK with list ID, title, and notes. The title is the task name; notes are the details.
Exactly. The function shape mirrors create_event — write action, ID, content fields, return the response dict. GOOGLETASKS_INSERT_TASK takes task_list_id, title, and notes. Check your Tasks app after the call and the task will be there:
result = toolset.execute_action(
Action.GOOGLETASKS_INSERT_TASK,
{
"task_list_id": list_id,
"title": "Follow up — Acme kickoff brief",
"notes": "Send project brief by April 28. Confirm Zoom details."
}
)
print(f"Task created: {result.get('id')}")create_event from Day 12 had four fields. add_task has three. The shapes are similar but not identical. Do all write actions share a standard interface?
No — each action's parameter shape reflects the underlying Google API. create_event needs start and end datetimes; Tasks does not have times by default. Read each action's params when you use it for the first time. The Composio response format is consistent (always a dict); the input params vary by action.
So after create_event for the kickoff, I can call add_task to create the follow-up in one chained function. Calendar feeds Tasks.
That is exactly Week 4's upcoming_to_tasks function. Two actions, one pipeline:
def add_task(list_id: str, title: str, notes: str) -> dict:
result = toolset.execute_action(
Action.GOOGLETASKS_INSERT_TASK,
{"task_list_id": list_id, "title": title, "notes": notes}
)
print(f"Task created: {result.get('id', 'ok')}")
return resultPost-kickoff follow-up tasks now create themselves. I could wire my whole Monday morning in this.
Which task would you create automatically — the project brief request, the invoice reminder, or the status check halfway through?
GOOGLETASKS_INSERT_TASK creates a new task inside a task list:
result = toolset.execute_action(
action=Action.GOOGLETASKS_INSERT_TASK,
params={'taskListId': list_id, 'title': title, 'notes': notes}
)Call list_tasks(list_id) before inserting to verify the target list exists. Inserting into a non-existent list raises an AUTH_REQUIRED or 404 error.
notes vs title: title is the one-line task name (visible in the task list). notes is the longer description (visible when you open the task). For client kickoffs, put the client name and project in title; add date, budget, and context in notes.
list_tasks from yesterday reads the task list. Today you write to it. Same safety principle as send_email and create_event: test with a task you can delete, confirm it appeared, then automate.
GOOGLETASKS_INSERT_TASK with list ID, title, and notes. The title is the task name; notes are the details.
Exactly. The function shape mirrors create_event — write action, ID, content fields, return the response dict. GOOGLETASKS_INSERT_TASK takes task_list_id, title, and notes. Check your Tasks app after the call and the task will be there:
result = toolset.execute_action(
Action.GOOGLETASKS_INSERT_TASK,
{
"task_list_id": list_id,
"title": "Follow up — Acme kickoff brief",
"notes": "Send project brief by April 28. Confirm Zoom details."
}
)
print(f"Task created: {result.get('id')}")create_event from Day 12 had four fields. add_task has three. The shapes are similar but not identical. Do all write actions share a standard interface?
No — each action's parameter shape reflects the underlying Google API. create_event needs start and end datetimes; Tasks does not have times by default. Read each action's params when you use it for the first time. The Composio response format is consistent (always a dict); the input params vary by action.
So after create_event for the kickoff, I can call add_task to create the follow-up in one chained function. Calendar feeds Tasks.
That is exactly Week 4's upcoming_to_tasks function. Two actions, one pipeline:
def add_task(list_id: str, title: str, notes: str) -> dict:
result = toolset.execute_action(
Action.GOOGLETASKS_INSERT_TASK,
{"task_list_id": list_id, "title": title, "notes": notes}
)
print(f"Task created: {result.get('id', 'ok')}")
return resultPost-kickoff follow-up tasks now create themselves. I could wire my whole Monday morning in this.
Which task would you create automatically — the project brief request, the invoice reminder, or the status check halfway through?
GOOGLETASKS_INSERT_TASK creates a new task inside a task list:
result = toolset.execute_action(
action=Action.GOOGLETASKS_INSERT_TASK,
params={'taskListId': list_id, 'title': title, 'notes': notes}
)Call list_tasks(list_id) before inserting to verify the target list exists. Inserting into a non-existent list raises an AUTH_REQUIRED or 404 error.
notes vs title: title is the one-line task name (visible in the task list). notes is the longer description (visible when you open the task). For client kickoffs, put the client name and project in title; add date, budget, and context in notes.
Create a free account to get started. Paid plans unlock all tracks.