# Motion

```json
{
  "name": "Motion",
  "slug": "motion",
  "url": "https://composio.dev/toolkits/motion",
  "markdown_url": "https://composio.dev/toolkits/motion.md",
  "logo_url": "https://logos.composio.dev/api/motion",
  "categories": [
    "productivity & project management",
    "scheduling & booking",
    "collaboration & communication"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-06-18T09:54:26.893Z"
}
```

![Motion logo](https://logos.composio.dev/api/motion)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Motion MCP or direct API to list tasks, create projects, review calendars, and schedule work through natural language.

## Summary

Motion is an intelligent calendar and project management tool for planning work, meetings, tasks, and team projects.
It helps you automatically prioritize your day and keep schedules realistic as plans change.

## Categories

- productivity & project management
- scheduling & booking
- collaboration & communication

## Toolkit Details

- Tools: 27

## Images

- Logo: https://logos.composio.dev/api/motion

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for Motion.
  - Setup:
    - Configure Api Key credentials for Motion.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- List Motion tasks due today
- Create project for product launch
- Reschedule overdue tasks for tomorrow

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `MOTION_ADD_CUSTOM_FIELD_TO_PROJECT` | Add Custom Field to Project | Tool to add a custom field value to a project in Motion. Use when you need to set or update custom field data on an existing project. |
| `MOTION_ADD_CUSTOM_FIELD_TO_TASK` | Add Custom Field to Task | Tool to add a custom field value to a task in Motion. Use when you need to set or update custom field data on an existing task. |
| `MOTION_CREATE_COMMENT` | Create Comment | Tool to create a new comment on a Motion task. Use when you need to add a comment to an existing task. |
| `MOTION_CREATE_CUSTOM_FIELD` | Create Custom Field | Tool to create a new custom field in a Motion workspace. Use when you need to add custom fields like text, select options, dates, or other field types to customize your workspace. For select/multiSelect types, provide options in metadata. |
| `MOTION_CREATE_PROJECT` | Create Project | Tool to create a new project in Motion. Use when you need to create a project within a specific workspace. Projects can have optional due dates, descriptions (HTML supported), labels, and priority levels. |
| `MOTION_CREATE_RECURRING_TASK` | Create Recurring Task | Tool to create a new recurring task in Motion. Use when you need to set up tasks that repeat on a schedule (daily, weekly, monthly, etc.). Recurring tasks automatically generate task instances based on the specified frequency pattern. |
| `MOTION_CREATE_TASK` | Create Task | Tool to create a new task in Motion. Use when you need to add a task to a workspace with specified properties like name, priority, due date, and assignee. |
| `MOTION_DELETE_CUSTOM_FIELD` | Delete Custom Field | Tool to delete a custom field from Motion workspace. Use when you need to remove a custom field that is no longer needed. This operation is permanent and cannot be undone. |
| `MOTION_DELETE_CUSTOM_FIELD_FROM_PROJECT` | Delete Custom Field From Project | Tool to delete a custom field value from a project in Motion. Use when you need to remove a custom field value from a specific project. |
| `MOTION_DELETE_CUSTOM_FIELD_FROM_TASK` | Delete Custom Field From Task | Tool to delete a custom field value from a task in Motion. Use when you need to remove a custom field value from a specific task by providing the task ID and custom field value ID. |
| `MOTION_DELETE_RECURRING_TASK` | Delete Recurring Task | Tool to delete a recurring task from Motion based on the ID supplied. Use when you need to remove a recurring task permanently from the system. |
| `MOTION_DELETE_TASK` | Delete Task | Tool to delete a task from Motion based on task ID. Use when you need to permanently remove a task from the Motion workspace. |
| `MOTION_GET_MY_USER` | Get My User Information | Tool to get information on the owner of the API key. Use when you need to retrieve the current user's profile details including their ID, name, and email address. |
| `MOTION_GET_PROJECT` | Get Project | Tool to retrieve a single project by its ID. Use when you need to get detailed information about a specific project including its name, description, status, and custom field values. |
| `MOTION_GET_TASK` | Get Task by ID | Tool to retrieve a task by its ID from Motion. Returns complete task details including title, description, due date, priority, assignees, scheduling information, and custom fields. |
| `MOTION_LIST_COMMENTS` | List comments on task | Tool to get all comments on a specific task. Use when you need to retrieve comment history for a task. Supports cursor-based pagination for tasks with many comments. |
| `MOTION_LIST_CUSTOM_FIELDS` | List Custom Fields | Tool to retrieve all custom fields for a given Motion workspace. Use when you need to see what custom fields are available in a workspace. |
| `MOTION_LIST_PROJECTS` | List Projects | Tool to get all projects for a workspace. Use when you need to retrieve all projects accessible to the API key, optionally filtered by workspace. |
| `MOTION_LIST_RECURRING_TASKS` | List Recurring Tasks | Tool to get all recurring tasks for a workspace. Use when you need to retrieve recurring task information from Motion. |
| `MOTION_LIST_SCHEDULES` | List Schedules | Tool to get a list of schedules for your user. Use when you need to retrieve the user's scheduling configuration including work hours and timezone settings. |
| `MOTION_LIST_STATUSES` | List Statuses | Tool to get a list of statuses for a Motion workspace. Use when you need to retrieve available task statuses for a workspace. |
| `MOTION_LIST_TASKS` | List Tasks | Tool to get all tasks for a given query with optional filtering. Use when you need to retrieve tasks from Motion, optionally filtered by assignee, project, workspace, status, label, or name. |
| `MOTION_LIST_USERS` | List users | Tool to get a list of users for a given workspace or team. Use when you need to retrieve user information from Motion. Supports pagination via cursor and filtering by workspaceId or teamId. |
| `MOTION_LIST_WORKSPACES` | List Workspaces | Tool to retrieve all workspaces a user has access to. Use when you need to discover available workspaces, filter for specific workspace IDs, or paginate through workspace results. Returns workspace details including type, team, labels, and statuses. |
| `MOTION_MOVE_TASK` | Move Task to Workspace | Tool to move a task to a different workspace in Motion. Use when you need to relocate a task from one workspace to another. |
| `MOTION_UNASSIGN_TASK` | Unassign Task | Tool to unassign a task from its current assignee. Use when you need to remove the assignee from a task, leaving the task unassigned. |
| `MOTION_UPDATE_TASK` | Update Task | Tool to update an existing task in Motion. Use when you need to modify task properties like name, priority, due date, status, or assignee. Only provide the fields you want to update. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK
```python
pip install composio_openai
```

```typescript
npm install @composio/openai
```

#### Path 1, Step 2: Initialize Composio and Create Tool Router Session

Import and initialize Composio client, then create a Tool Router session
```python
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
openai = OpenAI()
session = composio.create(user_id='your-user-id')
```

```typescript
import OpenAI from 'openai';
import { Composio } from '@composio/core';
import { OpenAIResponsesProvider } from '@composio/openai';

const composio = new Composio({
  provider: new OpenAIResponsesProvider(),
});
const openai = new OpenAI({});
const session = await composio.create('your-user-id');
```

#### Path 1, Step 3: Execute Motion Tools via Tool Router with Your Agent

Get tools from Tool Router session and execute Motion actions with your Agent
```python
tools = session.tools
response = openai.responses.create(
  model='gpt-4.1',
  tools=tools,
  input=[{
    'role': 'user',
    'content': 'List my Motion tasks due today and show their priorities'
  }]
)
result = composio.provider.handle_tool_calls(
  response=response,
  user_id='your-user-id'
)
print(result)
```

```typescript
const tools = session.tools;
const response = await openai.responses.create({
  model: 'gpt-4.1',
  tools: tools,
  input: [{
    role: 'user',
    content: 'List my Motion tasks due today and show their priorities'
  }],
});
const result = await composio.provider.handleToolCalls(
  'your-user-id',
  response.output
);
console.log(result);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK for Python or TypeScript
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/openai @ai-sdk/mcp
```

#### Path 2, Step 2: Initialize Client and Create Tool Router Session

Import and initialize the Composio client, then create a Tool Router session for Motion
```python
from composio import Composio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions

composio = Composio(api_key='your-composio-api-key')
session = composio.create(user_id='your-user-id')
url = session.mcp.url
```

```typescript
import { Composio } from '@composio/core';

const composio = new Composio({ apiKey: 'your-api-key' });
const session = await composio.create('your-user-id');
console.log(`Tool Router session created: ${session.mcp.url}`);
```

#### Path 2, Step 3: Connect to AI Agent

Use the MCP server with your AI agent (Anthropic Claude or Mastra)
```python
import asyncio

options = ClaudeAgentOptions(
    permission_mode='bypassPermissions',
    mcp_servers={
        'tool_router': {
            'type': 'http',
            'url': url,
            'headers': {
                'x-api-key': 'your-composio-api-key'
            }
        }
    },
    system_prompt='You are a helpful assistant with access to Motion tools.',
    max_turns=10
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query('List my Motion tasks due today and show their priorities')
        async for message in client.receive_response():
            if hasattr(message, 'content'):
                for block in message.content:
                    if hasattr(block, 'text'):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { openai } from '@ai-sdk/openai';
import { experimental_createMCPClient as createMCPClient } from '@ai-sdk/mcp';
import { generateText } from 'ai';

const client = await createMCPClient({
  transport: {
    type: 'http',
    url: session.mcp.url,
    headers: {
      'x-api-key': 'your-composio-api-key',
    },
  },
});

const tools = await client.tools();
const { text } = await generateText({
  model: openai('gpt-4o'),
  tools,
  messages: [{
    role: 'user',
    content: 'List my Motion tasks due today and show their priorities'
  }],
  maxSteps: 5,
});

console.log(`Agent: ${text}`);
```

## Why Use Composio?

### 1. AI Native Motion Integration

- Supports both Motion MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable task, calendar, and project actions
- Rich coverage for reading, writing, and querying your Motion workspace data

### 2. Managed Auth

- Secure API key handling without hard-coding Motion credentials in your agent code
- Central place to manage, scope, and revoke Motion access
- Per user and per environment credentials so each agent acts with the right access

### 3. Agent Optimized Design

- Motion tools are shaped for natural agent tasks like planning the day, checking deadlines, and updating projects
- Tools are tuned using real error and success rates to improve reliability over time
- Comprehensive execution logs so you always know what ran, when, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Motion
- Scoped, least privilege access to Motion tasks, calendars, and projects
- Full audit trail of agent actions to support review and compliance

## Use Motion with any AI Agent Framework

Choose a framework you want to connect Motion with:

- [Claude Cowork](https://composio.dev/toolkits/motion/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/motion/framework/codex)

## Related Toolkits

- [Gmail](https://composio.dev/toolkits/gmail) - Gmail is Google's email service with powerful spam protection, search, and G Suite integration. It keeps your inbox organized and makes communication fast and reliable.
- [Google Calendar](https://composio.dev/toolkits/googlecalendar) - Google Calendar is a time management service for scheduling meetings, events, and reminders. It streamlines personal and team organization with integrated notifications and sharing options.
- [Outlook](https://composio.dev/toolkits/outlook) - Outlook is Microsoft's email and calendaring platform for unified communications and scheduling. It helps users stay organized with powerful email, contacts, and calendar management.
- [Google Sheets](https://composio.dev/toolkits/googlesheets) - Google Sheets is a cloud-based spreadsheet tool for real-time collaboration and data analysis. It lets teams work together from anywhere, updating information instantly.
- [Notion](https://composio.dev/toolkits/notion) - Notion is a collaborative workspace for notes, docs, wikis, and tasks. It streamlines team knowledge, project tracking, and workflow customization in one place.
- [Slack](https://composio.dev/toolkits/slack) - Slack is a channel-based messaging platform for teams and organizations. It helps people collaborate in real time, share files, and connect all their tools in one place.
- [Airtable](https://composio.dev/toolkits/airtable) - Airtable combines the flexibility of spreadsheets with the power of a database for easy project and data management. Teams use Airtable to organize, track, and collaborate with custom views and automations.
- [Gong](https://composio.dev/toolkits/gong) - Gong is a platform for video meetings, call recording, and team collaboration. It helps teams capture conversations, analyze calls, and turn insights into action.
- [Asana](https://composio.dev/toolkits/asana) - Asana is a collaborative work management platform for teams to organize and track projects. It streamlines teamwork, boosts productivity, and keeps everyone aligned on goals.
- [Google Tasks](https://composio.dev/toolkits/googletasks) - Google Tasks is a to-do list and task management tool integrated into Gmail and Google Calendar. It helps you organize, track, and complete tasks across your Google ecosystem.
- [Linear](https://composio.dev/toolkits/linear) - Linear is a modern issue tracking and project planning tool for fast-moving teams. It helps streamline workflows, organize projects, and boost productivity.
- [Microsoft teams](https://composio.dev/toolkits/microsoft_teams) - Microsoft Teams is a collaboration platform that combines chat, meetings, and file sharing within Microsoft 365. It keeps distributed teams connected and productive through seamless virtual communication.
- [Jira](https://composio.dev/toolkits/jira) - Jira is Atlassian’s platform for bug tracking, issue tracking, and agile project management. It helps teams organize work, prioritize tasks, and deliver projects efficiently.
- [Clickup](https://composio.dev/toolkits/clickup) - ClickUp is an all-in-one productivity platform for managing tasks, docs, goals, and team collaboration. It streamlines project workflows so teams can work smarter and stay organized in one place.
- [Slackbot](https://composio.dev/toolkits/slackbot) - Slackbot is a conversational automation tool for Slack that handles reminders, notifications, and automated responses. It boosts team productivity by streamlining onboarding, answering FAQs, and managing timely alerts—all right inside Slack.
- [Monday](https://composio.dev/toolkits/monday) - Monday.com is a customizable work management platform for project planning and collaboration. It helps teams organize tasks, automate workflows, and track progress in real time.
- [2chat](https://composio.dev/toolkits/_2chat) - 2chat is an API platform for WhatsApp and multichannel text messaging. It streamlines chat automation, group management, and real-time messaging for developers.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Agent mail](https://composio.dev/toolkits/agent_mail) - Agent mail provides AI agents with dedicated email inboxes for sending, receiving, and managing emails. It empowers agents to communicate autonomously with people, services, and other agents—no human intervention needed.
- [Agiled](https://composio.dev/toolkits/agiled) - Agiled is an all-in-one business management platform for CRM, projects, and finance. It helps you streamline workflows, consolidate client data, and manage business processes in one place.

## Frequently Asked Questions

### Do I need my own developer credentials to use Motion with Composio?

Yes, Motion requires you to configure your own API key. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
