This program allows users to transfer all active tasks from Todoist into Motion's default workspace. The project strictly transfers the name and description of Todoist tasks into Motion. This is intended as a one-time transfer to kickstart your journey with Motion. Users who wish to sync Todoist and Motion in real time can use tools like Zapier after completing this transfer.
- Seamless Transfer: Transfers tasks from Todoist to Motion's default workspace.
- Progress Tracking: Includes a progress bar to visualize task transfer status.
- Error Handling: Provides detailed messages in case of failures.
This program is perfect for users who:
- Are migrating from Todoist to Motion.
- Want to organize their tasks in Motion.
- Need a one-time tool to jumpstart their workflow.
-
Python: Ensure you have Python 3.7+ installed.
-
API Keys:
- Todoist API Key: Get yours from Todoist Developer API.
- Motion API Key: Obtain from the Motion platform.
-
Dependencies: Install required libraries using the
requirements.txtfile.pip install -r requirements.txt
-
Clone the Repository:
git clone https://github.com/precious318/Todoist2Motion.git cd todoist-to-motion-transfer -
Create a
.envFile: Add your API keys to a.envfile in the following format:TODOIST_API_KEY=your_todoist_api_key MOTION_API_KEY=your_motion_api_key
-
Run the Program: Execute the script to start the transfer:
python main.py
-
Monitor Progress: The program displays a progress bar as tasks are transferred.
-
Follow Prompts: The script will guide you to input your Todoist and Motion API keys and handle the rest of the setup process.
-
Monitor Progress: The program displays a progress bar as tasks are transferred.
Todoist2Motion/
├── main.py # Main execution script
├── requirements.txt # Project dependencies
├── .env # Environment variables (API keys)
├── README.md # Documentation
The program uses the todoist-api-python library to retrieve all active tasks from Todoist. Each task contains:
- Task name (
content) - Description (
description)
Each Todoist task is converted into a Motion task. Key fields include:
- Name: The Todoist task name.
- Description: The Todoist task description.
Using the Motion API, tasks are added to Motion's default workspace. A rate limit of 10 tasks per minute is respected to avoid API restrictions.
A tqdm progress bar updates in real time, showing the transfer status.
To change the target workspace in Motion:
- Modify the
workspaceIdin thecreate_motion_taskfunction. - Use the
get_motion_workspace_idfunction to find other workspace IDs.
Feel free to extend the program with additional features, such as:
- Filtering tasks by priority.
- Syncing instead of transferring tasks.
This project was developed by Precious O. Akujor with guidance and support from ChatGPT by OpenAI. Special thanks to the developers of the following libraries:
This project is licensed under the MIT License. See the LICENSE file for details.
Feel free to fork this repository, suggest improvements, or submit issues on GitHub. Contributions are always welcome!
Users will need to create their own .env file to input and edit API keys as needed, allowing for flexibility in configuration.