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

ActionWhat it does
Create commentAdd a comment to a Motion task.
Create projectCreate a project in a Motion workspace.
Create recurring taskCreate a recurring task in Motion - daily, weekly, every two weeks, monthly or quarterly - which Motion schedules anew each time it comes round.
Create taskCreate a task in Motion, optionally in a project, assigned, labelled, due on a date and auto-scheduled onto the assignee's calendar.
Delete recurring taskDelete a Motion recurring task, so it stops coming round.
Delete taskDelete a Motion task permanently.
Get my userGet the Motion user the API key belongs to: id, name and email.
Get projectGet one Motion project: name, description, workspace and status.
Get taskGet one Motion task with its schedule, due date, duration, priority, status, assignees, labels and project.
List commentsList the comments on a Motion task, with who wrote each and when.
List projectsList the projects in a Motion workspace.
List recurring tasksList the recurring tasks in a Motion workspace.
List schedulesList your Motion schedules - the working hours tasks are fitted into - with their time zones and hours per weekday.
List statusesList the task statuses of a Motion workspace, with which is the default and which mean done.
List tasksList Motion tasks, filtered by workspace, project, assignee, label, status or a word in the name.
List usersList the people in a Motion workspace or team, with ids and emails.
List workspacesList the Motion workspaces you belong to, each with its id, name, team, type, labels and task statuses.
Move taskMove a Motion task to another workspace, optionally reassigning it.
Unassign taskRemove the assignee from a Motion task.
Update taskChange 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 IDtask_idtextRequired
The task to comment on. Use the 'id' from Create task or List tasks, or paste the task's Motion link.
CommentcontenttextRequired
The comment, in Markdown.

Outputs

contenttext
Comment as HTML
createdAttext
When it was posted (ISO 8601)
creatorobject
idtext
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

Workspaceworkspace_idtextRequired
The workspace to create it in.
NamenametextRequired
The project's name.
Descriptiondescriptiontext
Details. HTML is accepted.
Due datedue_datedate and time
When the project is due.
Labelslabelslist
Labels to put on the project, by name.
Priorityprioritytext
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
statusobject
updatedTimetext
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

Workspaceworkspace_idtextRequired
The workspace to create it in.
NamenametextRequired
The recurring task's title.
RepeatsfrequencytextRequired
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 daysdayslist
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).
Weekdayweekdaytext
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 monthday_of_monthnumber
Which day of the month, 1-31.Only when Repeats is Monthly - on a day number. From 1 to 31.
Assigneeassignee_idtext
Who it is for. Defaults to you.
Descriptiondescriptiontext
Details.
Durationduration_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).
Minutesduration_minutesnumber
How many minutes the task takes.Only when Duration is A number of minutes. From 1 to 100000.
Starting onstarting_ondate
The first day it may come round. Defaults to today.
Ideal timeideal_timetime
A time of day to schedule it at when that is free.
Schedulescheduletext
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.
Deadlinedeadline_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).
Priorityprioritytext
Defaults to medium.One of: HIGH, MEDIUM.

Outputs

assigneeobject
creatorobject
descriptiontext
Description as HTML
idtext
Recurring task id
labelslist
Labels on the recurring task
nametext
Recurring task name
prioritytext
ASAP, HIGH, MEDIUM or LOW
projectobject
statusobject
workspaceobject
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

Workspaceworkspace_idtextRequired
The workspace to create it in.
NamenametextRequired
The task's title.
Descriptiondescriptiontext
Details, in Markdown.
Projectproject_idtext
The project to put the task in.
Assigneeassignee_idtext
Who the task is for. Leave empty for it to be unassigned.
Priorityprioritytext
How urgent it is.One of: ASAP, HIGH, MEDIUM, LOW.
Labelslabelslist
Labels to put on the task, by name.
Statusstatustext
The status, by name. Defaults to the workspace's default status.
Due datedue_datedate and time
When it is due. Required for auto-scheduling.
Durationduration_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).
Minutesduration_minutesnumber
How many minutes the task takes.Only when Duration is A number of minutes. From 1 to 100000.
Auto-scheduleauto_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 thanauto_schedule_start_datedate
The first day Motion may schedule it on.Only when Auto-schedule is Auto-schedule it.
Deadlinedeadline_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).
Schedulescheduletext
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)
creatorobject
customFieldValuesobject
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
projectobject
scheduledEndtext
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)
statusobject
updatedTimetext
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 IDrecurring_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 IDtask_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 IDproject_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
statusobject
updatedTimetext
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 IDtask_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)
creatorobject
customFieldValuesobject
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
projectobject
scheduledEndtext
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)
statusobject
updatedTimetext
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 IDtask_idtextRequired
The task whose comments to list. Use the 'id' from Create task or List tasks, or paste the task's Motion link.
Cursorcursortext
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

Workspaceworkspace_idtext
The workspace whose projects to list.
Cursorcursortext
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

Workspaceworkspace_idtextRequired
The workspace whose recurring tasks to list.
Cursorcursortext
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

Workspaceworkspace_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

Workspaceworkspace_idtext
Leave empty for tasks from every workspace.
Projectproject_idtext
Only tasks in this project.
Assigneeassignee_idtext
Only tasks assigned to this person.
Labellabeltext
Only tasks with this label.
Name containsnametext
Only tasks whose name contains this (any case).
Statusesstatuseslist
Only tasks in these statuses. Leave empty for Motion's default, which leaves out completed tasks.
Include every statusinclude_all_statusestrue/false
Turn on to include completed tasks too. Cannot be combined with Statuses.Default: false.
Cursorcursortext
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

Workspaceworkspace_idtext
The workspace whose members to list.
Team IDmotion_team_idtext
Or list a whole team's members instead: the 'teamId' List workspaces returns.
Cursorcursortext
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 workspacesworkspace_idslist
Leave empty for every workspace.
Cursorcursortext
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 IDtask_idtextRequired
The task to move. Use the 'id' from Create task or List tasks, or paste the task's Motion link.
Workspaceworkspace_idtextRequired
The workspace to move it to.
Assigneeassignee_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)
creatorobject
customFieldValuesobject
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
projectobject
scheduledEndtext
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)
statusobject
updatedTimetext
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 IDtask_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 IDtask_idtextRequired
The task to change. Use the 'id' from Create task or List tasks, or paste the task's Motion link.
Workspaceworkspace_idtext
The task's workspace, to fill the dropdowns below. Use Move task to move it to another workspace.
New namenametext
Leave empty to keep the current name.
Descriptiondescriptiontext
Details, in Markdown.
Projectproject_idtext
The project to put the task in.
Assigneeassignee_idtext
Who the task is for. Leave empty for it to be unassigned (or for its current assignee).
Priorityprioritytext
How urgent it is.One of: ASAP, HIGH, MEDIUM, LOW.
Labelslabelslist
Labels to put on the task, by name. Replaces the task's labels.
Statusstatustext
The status, by name. Pick a 'done' status to complete the task.
Due datedue_datedate and time
When it is due. Required for auto-scheduling.
Durationduration_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).
Minutesduration_minutesnumber
How many minutes the task takes.Only when Duration is A number of minutes. From 1 to 100000.
Auto-scheduleauto_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 thanauto_schedule_start_datedate
The first day Motion may schedule it on.Only when Auto-schedule is Auto-schedule it.
Deadlinedeadline_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).
Schedulescheduletext
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)
creatorobject
customFieldValuesobject
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
projectobject
scheduledEndtext
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)
statusobject
updatedTimetext
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"
  }
}

On this page