Motion
App · 20 actions
Manage Motion, the AI calendar and project manager: create, update, move, comment on and delete tasks that Motion auto-schedules onto your calendar, create projects and recurring tasks, and read workspaces, people, statuses and schedules.
Actions
| Action | What it does |
|---|---|
| Create comment | Add a comment to a Motion task. |
| Create project | Create a project in a Motion workspace. |
| Create recurring task | Create a recurring task in Motion - daily, weekly, every two weeks, monthly or quarterly - which Motion schedules anew each time it comes round. |
| Create task | Create a task in Motion, optionally in a project, assigned, labelled, due on a date and auto-scheduled onto the assignee's calendar. |
| Delete recurring task | Delete a Motion recurring task, so it stops coming round. |
| Delete task | Delete a Motion task permanently. |
| Get my user | Get the Motion user the API key belongs to: id, name and email. |
| Get project | Get one Motion project: name, description, workspace and status. |
| Get task | Get one Motion task with its schedule, due date, duration, priority, status, assignees, labels and project. |
| List comments | List the comments on a Motion task, with who wrote each and when. |
| List projects | List the projects in a Motion workspace. |
| List recurring tasks | List the recurring tasks in a Motion workspace. |
| List schedules | List your Motion schedules - the working hours tasks are fitted into - with their time zones and hours per weekday. |
| List statuses | List the task statuses of a Motion workspace, with which is the default and which mean done. |
| List tasks | List Motion tasks, filtered by workspace, project, assignee, label, status or a word in the name. |
| List users | List the people in a Motion workspace or team, with ids and emails. |
| List workspaces | List the Motion workspaces you belong to, each with its id, name, team, type, labels and task statuses. |
| Move task | Move a Motion task to another workspace, optionally reassigning it. |
| Unassign task | Remove the assignee from a Motion task. |
| Update task | Change a Motion task: rename it, or change its description, project, assignee, priority, labels, status (pick a done status to complete it), due date, duration or auto-scheduling. |
Create comment
Add a comment to a Motion task.
Inputs
- Task ID
task_idtextRequired - The task to comment on. Use the 'id' from Create task or List tasks, or paste the task's Motion link.
- Comment
contenttextRequired - The comment, in Markdown.
Outputs
contenttext- Comment as HTML
createdAttext- When it was posted (ISO 8601)
creatorobjectidtext- Comment id
taskIdtext- Id of the task commented on
Example output
{
"content": "<p>Looks good.</p>",
"createdAt": "2026-10-15T10:00:00.000Z",
"creator": {
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
},
"id": "cm_7p8q9r",
"taskId": "tk_1j2k3l"
}Create project
Create a project in a Motion workspace.
Inputs
- Workspace
workspace_idtextRequired - The workspace to create it in.
- Name
nametextRequired - The project's name.
- Description
descriptiontext - Details. HTML is accepted.
- Due date
due_datedate and time - When the project is due.
- Labels
labelslist - Labels to put on the project, by name.
- Priority
prioritytext - Defaults to medium.One of:
ASAP,HIGH,MEDIUM,LOW.
Outputs
createdTimetext- When it was created (ISO 8601)
customFieldValuesobject- Custom field values keyed by field name, each with a 'type' and a 'value'
descriptiontext- Description as HTML
idtext- Project id
nametext- Project name
statusobjectupdatedTimetext- When it was last changed (ISO 8601)
workspaceIdtext- Id of the project's workspace
Example output
{
"createdTime": "2026-10-01T09:00:00.000Z",
"customFieldValues": {},
"description": "<p>Ship the new site.</p>",
"id": "pr_7g8h9i",
"name": "Website relaunch",
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"updatedTime": "2026-10-02T09:00:00.000Z",
"workspaceId": "ws_9f8e7d"
}Create recurring task
Create a recurring task in Motion - daily, weekly, every two weeks, monthly or quarterly - which Motion schedules anew each time it comes round.
Inputs
- Workspace
workspace_idtextRequired - The workspace to create it in.
- Name
nametextRequired - The recurring task's title.
- Repeats
frequencytextRequired - How often it comes round.One of:
daily_every_day(Daily - every day),daily_every_week_day(Daily - every weekday),daily_specific_days(Daily - on the chosen days),weekly_any_day(Weekly - any day),weekly_any_week_day(Weekly - any weekday),weekly_specific_days(Weekly - on the chosen days),biweekly_first_week_specific_days(Every 2 weeks - chosen days, week 1),biweekly_first_week_any_day(Every 2 weeks - any day, week 1),biweekly_first_week_any_week_day(Every 2 weeks - any weekday, week 1),biweekly_second_week_any_day(Every 2 weeks - any day, week 2), and 31 more. - On these days
dayslist - The days it repeats on.Only when Repeats is Daily - on the chosen days, Weekly - on the chosen days or Every 2 weeks - chosen days, week 1. One or more of:
MO(Monday),TU(Tuesday),WE(Wednesday),TH(Thursday),FR(Friday),SA(Saturday),SU(Sunday). - Weekday
weekdaytext - Which weekday of the month or quarter.Only when Repeats is Monthly - first chosen weekday, Monthly - second chosen weekday, Monthly - third chosen weekday, Monthly - fourth chosen weekday, Monthly - last chosen weekday, Quarterly - first chosen weekday or Quarterly - last chosen weekday. One of:
MO(Monday),TU(Tuesday),WE(Wednesday),TH(Thursday),FR(Friday),SA(Saturday),SU(Sunday). - Day of the month
day_of_monthnumber - Which day of the month, 1-31.Only when Repeats is Monthly - on a day number. From 1 to 31.
- Assignee
assignee_idtext - Who it is for. Defaults to you.
- Description
descriptiontext - Details.
- Duration
duration_typetext - How long the task takes. A reminder blocks no time on the calendar. Leave empty for Motion's default.One of:
minutes(A number of minutes),REMINDER(Reminder - blocks no time). - Minutes
duration_minutesnumber - How many minutes the task takes.Only when Duration is A number of minutes. From 1 to 100000.
- Starting on
starting_ondate - The first day it may come round. Defaults to today.
- Ideal time
ideal_timetime - A time of day to schedule it at when that is free.
- Schedule
scheduletext - Which of your Motion schedules to fit it into. Defaults to 'Work Hours', which is also the only one Motion allows when scheduling for someone else.
- Deadline
deadline_typetext - How firm each occurrence's deadline is. Defaults to soft.One of:
SOFT(Soft - Motion may schedule past it),HARD(Hard - must finish by the due date). - Priority
prioritytext - Defaults to medium.One of:
HIGH,MEDIUM.
Outputs
assigneeobjectcreatorobjectdescriptiontext- Description as HTML
idtext- Recurring task id
labelslist- Labels on the recurring task
nametext- Recurring task name
prioritytext- ASAP, HIGH, MEDIUM or LOW
projectobjectstatusobjectworkspaceobject
Example output
{
"assignee": {
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
},
"creator": {
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
},
"description": "<p>Look back at the week.</p>",
"id": "rt_4m5n6o",
"labels": [],
"name": "Weekly review",
"priority": "MEDIUM",
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"workspace": {
"id": "ws_9f8e7d",
"labels": [
{
"name": "Urgent"
}
],
"name": "Acme",
"statuses": [
{
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
}
],
"teamId": "team_4d5e6f",
"type": "TEAM"
}
}Create task
Create a task in Motion, optionally in a project, assigned, labelled, due on a date and auto-scheduled onto the assignee's calendar.
Inputs
- Workspace
workspace_idtextRequired - The workspace to create it in.
- Name
nametextRequired - The task's title.
- Description
descriptiontext - Details, in Markdown.
- Project
project_idtext - The project to put the task in.
- Assignee
assignee_idtext - Who the task is for. Leave empty for it to be unassigned.
- Priority
prioritytext - How urgent it is.One of:
ASAP,HIGH,MEDIUM,LOW. - Labels
labelslist - Labels to put on the task, by name.
- Status
statustext - The status, by name. Defaults to the workspace's default status.
- Due date
due_datedate and time - When it is due. Required for auto-scheduling.
- Duration
duration_typetext - How long the task takes. A reminder blocks no time on the calendar. Leave empty for Motion's default.One of:
minutes(A number of minutes),NONE(No duration),REMINDER(Reminder - blocks no time). - Minutes
duration_minutesnumber - How many minutes the task takes.Only when Duration is A number of minutes. From 1 to 100000.
- Auto-schedule
auto_scheduletext - Let Motion place the task on the assignee's calendar. Needs a due date, and a status with auto-scheduling turned on.One of:
on(Auto-schedule it),off(Don't auto-schedule it). Default:off. - Start no earlier than
auto_schedule_start_datedate - The first day Motion may schedule it on.Only when Auto-schedule is Auto-schedule it.
- Deadline
deadline_typetext - How firm the due date is. Defaults to soft.Only when Auto-schedule is Auto-schedule it. One of:
SOFT(Soft - Motion may schedule past it),HARD(Hard - must finish by the due date),NONE(None - no deadline). - Schedule
scheduletext - Which of your Motion schedules to fit it into. Defaults to 'Work Hours', which is also the only one Motion allows when scheduling for someone else.Only when Auto-schedule is Auto-schedule it.
Outputs
assigneeslist- People the task is assigned to
chunkslist- The scheduled blocks the task is split into
completedtrue/false- Whether the task is completed
completedTimetext- When it was completed (ISO 8601)
createdTimetext- When it was created (ISO 8601)
creatorobjectcustomFieldValuesobject- Custom field values keyed by field name, each with a 'type' and a 'value'
deadlineTypetext- HARD, SOFT or NONE
descriptiontext- Description as HTML
dueDatetext- Due date (ISO 8601)
durationtext- Minutes, or NONE, or REMINDER
idtext- Task id
labelslist- Labels on the task
lastInteractedTimetext- When it was last touched (ISO 8601)
nametext- Task name
parentRecurringTaskIdtext- Recurring task this came from, if any
prioritytext- ASAP, HIGH, MEDIUM or LOW
projectobjectscheduledEndtext- Scheduled end (ISO 8601)
scheduledStarttext- Scheduled start (ISO 8601)
schedulingIssuetrue/false- True when Motion could not schedule it
startOntext- Date it should start (YYYY-MM-DD)
statusobjectupdatedTimetext- When it was last changed (ISO 8601)
workspaceobject
Example output
{
"assignees": [
{
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
}
],
"chunks": [],
"completed": false,
"createdTime": "2026-10-15T09:00:00.000Z",
"creator": {
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
},
"deadlineType": "SOFT",
"description": "<p>First draft.</p>",
"dueDate": "2026-10-20T17:00:00.000Z",
"duration": 30,
"id": "tk_1j2k3l",
"labels": [
{
"name": "Urgent"
}
],
"name": "Draft the launch post",
"parentRecurringTaskId": "",
"priority": "HIGH",
"project": {
"createdTime": "2026-10-01T09:00:00.000Z",
"customFieldValues": {},
"description": "<p>Ship the new site.</p>",
"id": "pr_7g8h9i",
"name": "Website relaunch",
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"updatedTime": "2026-10-02T09:00:00.000Z",
"workspaceId": "ws_9f8e7d"
},
"scheduledEnd": "2026-10-19T14:30:00.000Z",
"scheduledStart": "2026-10-19T14:00:00.000Z",
"schedulingIssue": false,
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"workspace": {
"id": "ws_9f8e7d",
"labels": [
{
"name": "Urgent"
}
],
"name": "Acme",
"statuses": [
{
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
}
],
"teamId": "team_4d5e6f",
"type": "TEAM"
}
}Delete recurring task
Delete a Motion recurring task, so it stops coming round.
Inputs
- Recurring task ID
recurring_task_idtextRequired - The recurring task. Use the 'id' from Create recurring task or List recurring tasks.
Outputs
deletedtrue/false- Always true
recurring_task_idtext- The deleted recurring task's id
Example output
{
"deleted": true,
"recurring_task_id": "rt_4m5n6o"
}Delete task
Delete a Motion task permanently.
Inputs
- Task ID
task_idtextRequired - The task to delete. Use the 'id' from Create task or List tasks, or paste the task's Motion link.
Outputs
deletedtrue/false- Always true
task_idtext- The deleted task's id
Example output
{
"deleted": true,
"task_id": "tk_1j2k3l"
}Get my user
Get the Motion user the API key belongs to: id, name and email.
Inputs
None.
Outputs
emailtext- Email address
idtext- User id
nametext- Full name
Example output
{
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
}Get project
Get one Motion project: name, description, workspace and status.
Inputs
- Project ID
project_idtextRequired - The project. Use the 'id' from List projects or Create project, or paste the project's Motion link.
Outputs
createdTimetext- When it was created (ISO 8601)
customFieldValuesobject- Custom field values keyed by field name, each with a 'type' and a 'value'
descriptiontext- Description as HTML
idtext- Project id
nametext- Project name
statusobjectupdatedTimetext- When it was last changed (ISO 8601)
workspaceIdtext- Id of the project's workspace
Example output
{
"createdTime": "2026-10-01T09:00:00.000Z",
"customFieldValues": {},
"description": "<p>Ship the new site.</p>",
"id": "pr_7g8h9i",
"name": "Website relaunch",
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"updatedTime": "2026-10-02T09:00:00.000Z",
"workspaceId": "ws_9f8e7d"
}Get task
Get one Motion task with its schedule, due date, duration, priority, status, assignees, labels and project.
Inputs
- Task ID
task_idtextRequired - The task. Use the 'id' from Create task or List tasks, or paste the task's Motion link.
Outputs
assigneeslist- People the task is assigned to
chunkslist- The scheduled blocks the task is split into
completedtrue/false- Whether the task is completed
completedTimetext- When it was completed (ISO 8601)
createdTimetext- When it was created (ISO 8601)
creatorobjectcustomFieldValuesobject- Custom field values keyed by field name, each with a 'type' and a 'value'
deadlineTypetext- HARD, SOFT or NONE
descriptiontext- Description as HTML
dueDatetext- Due date (ISO 8601)
durationtext- Minutes, or NONE, or REMINDER
idtext- Task id
labelslist- Labels on the task
lastInteractedTimetext- When it was last touched (ISO 8601)
nametext- Task name
parentRecurringTaskIdtext- Recurring task this came from, if any
prioritytext- ASAP, HIGH, MEDIUM or LOW
projectobjectscheduledEndtext- Scheduled end (ISO 8601)
scheduledStarttext- Scheduled start (ISO 8601)
schedulingIssuetrue/false- True when Motion could not schedule it
startOntext- Date it should start (YYYY-MM-DD)
statusobjectupdatedTimetext- When it was last changed (ISO 8601)
workspaceobject
Example output
{
"assignees": [
{
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
}
],
"chunks": [],
"completed": false,
"createdTime": "2026-10-15T09:00:00.000Z",
"creator": {
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
},
"deadlineType": "SOFT",
"description": "<p>First draft.</p>",
"dueDate": "2026-10-20T17:00:00.000Z",
"duration": 30,
"id": "tk_1j2k3l",
"labels": [
{
"name": "Urgent"
}
],
"name": "Draft the launch post",
"parentRecurringTaskId": "",
"priority": "HIGH",
"project": {
"createdTime": "2026-10-01T09:00:00.000Z",
"customFieldValues": {},
"description": "<p>Ship the new site.</p>",
"id": "pr_7g8h9i",
"name": "Website relaunch",
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"updatedTime": "2026-10-02T09:00:00.000Z",
"workspaceId": "ws_9f8e7d"
},
"scheduledEnd": "2026-10-19T14:30:00.000Z",
"scheduledStart": "2026-10-19T14:00:00.000Z",
"schedulingIssue": false,
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"workspace": {
"id": "ws_9f8e7d",
"labels": [
{
"name": "Urgent"
}
],
"name": "Acme",
"statuses": [
{
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
}
],
"teamId": "team_4d5e6f",
"type": "TEAM"
}
}List comments
List the comments on a Motion task, with who wrote each and when.
Inputs
- Task ID
task_idtextRequired - The task whose comments to list. Use the 'id' from Create task or List tasks, or paste the task's Motion link.
- Cursor
cursortext - Leave empty for the first page. To read the next one, pass the 'next_cursor' an earlier run of this step returned.
Outputs
commentslist- Comments
countnumber- Records on this page
has_moretrue/false- Whether another page follows
next_cursortext- Pass as 'cursor' to read the next page; empty on the last page
Example output
{
"comments": [
{
"content": "<p>Looks good.</p>",
"createdAt": "2026-10-15T10:00:00.000Z",
"creator": {
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
},
"id": "cm_7p8q9r",
"taskId": "tk_1j2k3l"
}
],
"count": 1,
"has_more": false,
"next_cursor": null
}List projects
List the projects in a Motion workspace.
Inputs
- Workspace
workspace_idtext - The workspace whose projects to list.
- Cursor
cursortext - Leave empty for the first page. To read the next one, pass the 'next_cursor' an earlier run of this step returned.
Outputs
countnumber- Records on this page
has_moretrue/false- Whether another page follows
next_cursortext- Pass as 'cursor' to read the next page; empty on the last page
projectslist- Projects
Example output
{
"count": 1,
"has_more": false,
"next_cursor": null,
"projects": [
{
"createdTime": "2026-10-01T09:00:00.000Z",
"customFieldValues": {},
"description": "<p>Ship the new site.</p>",
"id": "pr_7g8h9i",
"name": "Website relaunch",
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"updatedTime": "2026-10-02T09:00:00.000Z",
"workspaceId": "ws_9f8e7d"
}
]
}List recurring tasks
List the recurring tasks in a Motion workspace.
Inputs
- Workspace
workspace_idtextRequired - The workspace whose recurring tasks to list.
- Cursor
cursortext - Leave empty for the first page. To read the next one, pass the 'next_cursor' an earlier run of this step returned.
Outputs
countnumber- Records on this page
has_moretrue/false- Whether another page follows
next_cursortext- Pass as 'cursor' to read the next page; empty on the last page
taskslist- Recurring tasks
Example output
{
"count": 1,
"has_more": false,
"next_cursor": null,
"tasks": [
{
"assignee": {
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
},
"creator": {
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
},
"description": "<p>Look back at the week.</p>",
"id": "rt_4m5n6o",
"labels": [],
"name": "Weekly review",
"priority": "MEDIUM",
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"workspace": {
"id": "ws_9f8e7d",
"labels": [
{
"name": "Urgent"
}
],
"name": "Acme",
"statuses": [
{
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
}
],
"teamId": "team_4d5e6f",
"type": "TEAM"
}
}
]
}List schedules
List your Motion schedules - the working hours tasks are fitted into - with their time zones and hours per weekday.
Inputs
None.
Outputs
countnumber- How many were returned
scheduleslist- Schedules
Example output
{
"count": 1,
"schedules": [
{
"isDefaultTimezone": true,
"name": "Work Hours",
"schedule": {
"friday": [
{
"end": "17:00",
"start": "09:00"
}
],
"monday": [
{
"end": "17:00",
"start": "09:00"
}
],
"saturday": [],
"sunday": [],
"thursday": [
{
"end": "17:00",
"start": "09:00"
}
],
"tuesday": [
{
"end": "17:00",
"start": "09:00"
}
],
"wednesday": [
{
"end": "17:00",
"start": "09:00"
}
]
},
"timezone": "America/New_York"
}
]
}List statuses
List the task statuses of a Motion workspace, with which is the default and which mean done.
Inputs
- Workspace
workspace_idtext - The workspace whose statuses to list.
Outputs
countnumber- How many were returned
statuseslist- Statuses
Example output
{
"count": 1,
"statuses": [
{
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
}
]
}List tasks
List Motion tasks, filtered by workspace, project, assignee, label, status or a word in the name. Each comes with its schedule, due date, priority, status, assignees and labels.
Inputs
- Workspace
workspace_idtext - Leave empty for tasks from every workspace.
- Project
project_idtext - Only tasks in this project.
- Assignee
assignee_idtext - Only tasks assigned to this person.
- Label
labeltext - Only tasks with this label.
- Name contains
nametext - Only tasks whose name contains this (any case).
- Statuses
statuseslist - Only tasks in these statuses. Leave empty for Motion's default, which leaves out completed tasks.
- Include every status
include_all_statusestrue/false - Turn on to include completed tasks too. Cannot be combined with Statuses.Default:
false. - Cursor
cursortext - Leave empty for the first page. To read the next one, pass the 'next_cursor' an earlier run of this step returned.
Outputs
countnumber- Records on this page
has_moretrue/false- Whether another page follows
next_cursortext- Pass as 'cursor' to read the next page; empty on the last page
taskslist- Tasks
Example output
{
"count": 1,
"has_more": false,
"next_cursor": null,
"tasks": [
{
"assignees": [
{
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
}
],
"chunks": [],
"completed": false,
"createdTime": "2026-10-15T09:00:00.000Z",
"creator": {
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
},
"deadlineType": "SOFT",
"description": "<p>First draft.</p>",
"dueDate": "2026-10-20T17:00:00.000Z",
"duration": 30,
"id": "tk_1j2k3l",
"labels": [
{
"name": "Urgent"
}
],
"name": "Draft the launch post",
"parentRecurringTaskId": "",
"priority": "HIGH",
"project": {
"createdTime": "2026-10-01T09:00:00.000Z",
"customFieldValues": {},
"description": "<p>Ship the new site.</p>",
"id": "pr_7g8h9i",
"name": "Website relaunch",
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"updatedTime": "2026-10-02T09:00:00.000Z",
"workspaceId": "ws_9f8e7d"
},
"scheduledEnd": "2026-10-19T14:30:00.000Z",
"scheduledStart": "2026-10-19T14:00:00.000Z",
"schedulingIssue": false,
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"workspace": {
"id": "ws_9f8e7d",
"labels": [
{
"name": "Urgent"
}
],
"name": "Acme",
"statuses": [
{
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
}
],
"teamId": "team_4d5e6f",
"type": "TEAM"
}
}
]
}List users
List the people in a Motion workspace or team, with ids and emails.
Inputs
- Workspace
workspace_idtext - The workspace whose members to list.
- Team ID
motion_team_idtext - Or list a whole team's members instead: the 'teamId' List workspaces returns.
- Cursor
cursortext - Leave empty for the first page. To read the next one, pass the 'next_cursor' an earlier run of this step returned.
Outputs
countnumber- Records on this page
has_moretrue/false- Whether another page follows
next_cursortext- Pass as 'cursor' to read the next page; empty on the last page
userslist- Users
Example output
{
"count": 1,
"has_more": false,
"next_cursor": null,
"users": [
{
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
}
]
}List workspaces
List the Motion workspaces you belong to, each with its id, name, team, type, labels and task statuses.
Inputs
- Only these workspaces
workspace_idslist - Leave empty for every workspace.
- Cursor
cursortext - Leave empty for the first page. To read the next one, pass the 'next_cursor' an earlier run of this step returned.
Outputs
countnumber- Records on this page
has_moretrue/false- Whether another page follows
next_cursortext- Pass as 'cursor' to read the next page; empty on the last page
workspaceslist- Workspaces
Example output
{
"count": 1,
"has_more": false,
"next_cursor": null,
"workspaces": [
{
"id": "ws_9f8e7d",
"labels": [
{
"name": "Urgent"
}
],
"name": "Acme",
"statuses": [
{
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
}
],
"teamId": "team_4d5e6f",
"type": "TEAM"
}
]
}Move task
Move a Motion task to another workspace, optionally reassigning it.
Inputs
- Task ID
task_idtextRequired - The task to move. Use the 'id' from Create task or List tasks, or paste the task's Motion link.
- Workspace
workspace_idtextRequired - The workspace to move it to.
- Assignee
assignee_idtext - Who to assign it to in that workspace.
Outputs
assigneeslist- People the task is assigned to
chunkslist- The scheduled blocks the task is split into
completedtrue/false- Whether the task is completed
completedTimetext- When it was completed (ISO 8601)
createdTimetext- When it was created (ISO 8601)
creatorobjectcustomFieldValuesobject- Custom field values keyed by field name, each with a 'type' and a 'value'
deadlineTypetext- HARD, SOFT or NONE
descriptiontext- Description as HTML
dueDatetext- Due date (ISO 8601)
durationtext- Minutes, or NONE, or REMINDER
idtext- Task id
labelslist- Labels on the task
lastInteractedTimetext- When it was last touched (ISO 8601)
nametext- Task name
parentRecurringTaskIdtext- Recurring task this came from, if any
prioritytext- ASAP, HIGH, MEDIUM or LOW
projectobjectscheduledEndtext- Scheduled end (ISO 8601)
scheduledStarttext- Scheduled start (ISO 8601)
schedulingIssuetrue/false- True when Motion could not schedule it
startOntext- Date it should start (YYYY-MM-DD)
statusobjectupdatedTimetext- When it was last changed (ISO 8601)
workspaceobject
Example output
{
"assignees": [
{
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
}
],
"chunks": [],
"completed": false,
"createdTime": "2026-10-15T09:00:00.000Z",
"creator": {
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
},
"deadlineType": "SOFT",
"description": "<p>First draft.</p>",
"dueDate": "2026-10-20T17:00:00.000Z",
"duration": 30,
"id": "tk_1j2k3l",
"labels": [
{
"name": "Urgent"
}
],
"name": "Draft the launch post",
"parentRecurringTaskId": "",
"priority": "HIGH",
"project": {
"createdTime": "2026-10-01T09:00:00.000Z",
"customFieldValues": {},
"description": "<p>Ship the new site.</p>",
"id": "pr_7g8h9i",
"name": "Website relaunch",
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"updatedTime": "2026-10-02T09:00:00.000Z",
"workspaceId": "ws_9f8e7d"
},
"scheduledEnd": "2026-10-19T14:30:00.000Z",
"scheduledStart": "2026-10-19T14:00:00.000Z",
"schedulingIssue": false,
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"workspace": {
"id": "ws_9f8e7d",
"labels": [
{
"name": "Urgent"
}
],
"name": "Acme",
"statuses": [
{
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
}
],
"teamId": "team_4d5e6f",
"type": "TEAM"
}
}Unassign task
Remove the assignee from a Motion task.
Inputs
- Task ID
task_idtextRequired - The task to unassign. Use the 'id' from Create task or List tasks, or paste the task's Motion link.
Outputs
taskobject- The task, when Motion returns it
task_idtext- The task's id
unassignedtrue/false- Always true
Example output
{
"task_id": "tk_1j2k3l",
"unassigned": true
}Update task
Change a Motion task: rename it, or change its description, project, assignee, priority, labels, status (pick a done status to complete it), due date, duration or auto-scheduling. Fields left empty are not changed.
Inputs
- Task ID
task_idtextRequired - The task to change. Use the 'id' from Create task or List tasks, or paste the task's Motion link.
- Workspace
workspace_idtext - The task's workspace, to fill the dropdowns below. Use Move task to move it to another workspace.
- New name
nametext - Leave empty to keep the current name.
- Description
descriptiontext - Details, in Markdown.
- Project
project_idtext - The project to put the task in.
- Assignee
assignee_idtext - Who the task is for. Leave empty for it to be unassigned (or for its current assignee).
- Priority
prioritytext - How urgent it is.One of:
ASAP,HIGH,MEDIUM,LOW. - Labels
labelslist - Labels to put on the task, by name. Replaces the task's labels.
- Status
statustext - The status, by name. Pick a 'done' status to complete the task.
- Due date
due_datedate and time - When it is due. Required for auto-scheduling.
- Duration
duration_typetext - How long the task takes. A reminder blocks no time on the calendar. Leave empty for Motion's default.One of:
minutes(A number of minutes),NONE(No duration),REMINDER(Reminder - blocks no time). - Minutes
duration_minutesnumber - How many minutes the task takes.Only when Duration is A number of minutes. From 1 to 100000.
- Auto-schedule
auto_scheduletext - Let Motion place the task on the assignee's calendar. Needs a due date, and a status with auto-scheduling turned on. Leave empty to keep the current setting.One of:
on(Auto-schedule it),off(Don't auto-schedule it). - Start no earlier than
auto_schedule_start_datedate - The first day Motion may schedule it on.Only when Auto-schedule is Auto-schedule it.
- Deadline
deadline_typetext - How firm the due date is. Defaults to soft.Only when Auto-schedule is Auto-schedule it. One of:
SOFT(Soft - Motion may schedule past it),HARD(Hard - must finish by the due date),NONE(None - no deadline). - Schedule
scheduletext - Which of your Motion schedules to fit it into. Defaults to 'Work Hours', which is also the only one Motion allows when scheduling for someone else.Only when Auto-schedule is Auto-schedule it.
Outputs
assigneeslist- People the task is assigned to
chunkslist- The scheduled blocks the task is split into
completedtrue/false- Whether the task is completed
completedTimetext- When it was completed (ISO 8601)
createdTimetext- When it was created (ISO 8601)
creatorobjectcustomFieldValuesobject- Custom field values keyed by field name, each with a 'type' and a 'value'
deadlineTypetext- HARD, SOFT or NONE
descriptiontext- Description as HTML
dueDatetext- Due date (ISO 8601)
durationtext- Minutes, or NONE, or REMINDER
idtext- Task id
labelslist- Labels on the task
lastInteractedTimetext- When it was last touched (ISO 8601)
nametext- Task name
parentRecurringTaskIdtext- Recurring task this came from, if any
prioritytext- ASAP, HIGH, MEDIUM or LOW
projectobjectscheduledEndtext- Scheduled end (ISO 8601)
scheduledStarttext- Scheduled start (ISO 8601)
schedulingIssuetrue/false- True when Motion could not schedule it
startOntext- Date it should start (YYYY-MM-DD)
statusobjectupdatedTimetext- When it was last changed (ISO 8601)
workspaceobject
Example output
{
"assignees": [
{
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
}
],
"chunks": [],
"completed": false,
"createdTime": "2026-10-15T09:00:00.000Z",
"creator": {
"email": "ada@example.com",
"id": "usr_1a2b3c",
"name": "Ada Lovelace"
},
"deadlineType": "SOFT",
"description": "<p>First draft.</p>",
"dueDate": "2026-10-20T17:00:00.000Z",
"duration": 30,
"id": "tk_1j2k3l",
"labels": [
{
"name": "Urgent"
}
],
"name": "Draft the launch post",
"parentRecurringTaskId": "",
"priority": "HIGH",
"project": {
"createdTime": "2026-10-01T09:00:00.000Z",
"customFieldValues": {},
"description": "<p>Ship the new site.</p>",
"id": "pr_7g8h9i",
"name": "Website relaunch",
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"updatedTime": "2026-10-02T09:00:00.000Z",
"workspaceId": "ws_9f8e7d"
},
"scheduledEnd": "2026-10-19T14:30:00.000Z",
"scheduledStart": "2026-10-19T14:00:00.000Z",
"schedulingIssue": false,
"status": {
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
},
"workspace": {
"id": "ws_9f8e7d",
"labels": [
{
"name": "Urgent"
}
],
"name": "Acme",
"statuses": [
{
"isDefaultStatus": true,
"isResolvedStatus": false,
"name": "Todo"
}
],
"teamId": "team_4d5e6f",
"type": "TEAM"
}
}