A user-friendly Windows application to backup and export your Microsoft To Do lists to various formats including Excel, CSV, JSON, and plain text.
This project was inspired by Microsoft-To-Do-Export and TodoVodo. However, these solutions didn't meet my requirements for a simple, easy-to-use application that saves time on post-export work. I wanted something that:
- Just works β No manual token handling or complex setup
- Remembers your login β No need to authenticate every time
- Exports to Excel β Formatted, colored spreadsheets ready to use
- Lets you select multiple lists β Export exactly what you need
- Works on Windows without using command-line scripts
- β Easy Authentication - Sign in with your Microsoft account using Device Code Flow (no manual token input required)
- π Secure Token Caching - Your login is remembered using Windows DPAPI encryption
- π Multi-Language Support - Switch between German (DE) and English (EN) with a simple toggle
- π Multi-Select Lists - Select multiple lists at once with checkboxes
- π Multiple Export Formats:
- Excel (.xlsx) - Formatted spreadsheet with overview, colors, and separate sheets per list
- Todoist CSV (.csv) - Compatible with Todoist import function
- JSON (.json) - Structured format for developers
- Text (.txt) - Simple text list for reading
- Detailed Text (.txt) - Detailed information per task with icons
- Detailed CSV (.csv) - All details as a table
- π¨ Modern UI - User-friendly Windows 11-like interface
- β‘ Pagination Support - Handles lists with many tasks automatically
- β Include/Exclude Completed Tasks - Option to include or exclude completed tasks during export
- π Auto-Refresh - Refresh your lists with a single click
The application provides a clean, modern interface for exporting your Microsoft To Do lists.
Simple one-click authentication β a browser window opens automatically.
Select your lists, choose a format, and export with one click. Switch between German and English with the language toggle in the top-right corner.
- Windows 10/11
- Microsoft account with Microsoft To Do
Note: No additional installation required! The application includes everything needed to run.
- Go to Releases (or download from the latest GitHub release)
- Download the latest
TodoExport-v1.0.1-win-x64.zip - Extract all files to a folder
- Run
TodoExport.exe- No installation required!
The application is self-contained and includes everything needed to run on Windows 10/11.
git clone https://github.com/mrhymes26/Easy-ToDo-Export.git
cd 2025-app-todo-export
dotnet publish -c Release -r win-x64 --self-contained trueThe compiled application will be in builds/self-contained/ or bin/Release/net8.0-windows/win-x64/.
- Click "Sign in" button
- A browser window will open automatically
- Enter the code shown in the application
- Sign in with your Microsoft account
- Grant the required permissions
- You're signed in! Your login will be remembered for future sessions
- All your To-Do lists will be loaded automatically
- Use "All" to select all lists or "None" to deselect all
- Check/uncheck individual lists as needed
- The selected count is displayed in real-time
- Choose your export format from the dropdown
- (Optional) Check/uncheck "Include completed tasks" to include or exclude completed tasks
- Click "Export"
- Choose the save location for your export file
- The export will be performed and you'll receive a confirmation
Formatted spreadsheet with:
- Overview sheet with summary statistics
- "All Tasks" sheet with all tasks from all selected lists
- Separate sheet for each To-Do list
- Color-coded status indicators
- Formatted dates and times
CSV format compatible with Todoist:
TYPE,CONTENT,PRIORITY,INDENT,AUTHOR,RESPONSIBLE,DATE,DATE_LANG,TIMEZONE
section,List Name,,,,,,,
task,Task Title,4,,,,YYYY-MM-DD,en,UTC
Detailed CSV format with all available fields:
TYPE,CONTENT,NOTE,PROJECT,LABELS,PRIORITY,INDENT,AUTHOR,RESPONSIBLE,DATE,DATE_LANG,TIMEZONE,STATUS,CREATED,MODIFIED
Complete JSON format with metadata:
{
"about": "File exported using Microsoft To Do Export",
"exportedAt": "YYYY-MM-DDTHH:mm:ssZ",
"lists": [
{
"list": { "id": "...", "displayName": "..." },
"tasks": [...]
}
]
}Simple tab-separated format:
Content Due Date Timezone
List Name
Task Title YYYY-MM-DD UTC
Human-readable format with icons:
Microsoft To Do Export
Exported on: YYYY-MM-DD HH:mm:ss
============================================================
π List Name
------------------------------------------------------------
β Task Title π΄
π
Due: YYYY-MM-DD HH:mm
π·οΈ Categories: Work, Important
| Format | Best For | Description |
|---|---|---|
| Excel (.xlsx) | Most users | Formatted spreadsheet with colors, summary, and per-list sheets |
| Todoist CSV | Migrating to Todoist | Compatible with Todoist's import function |
| JSON | Developers | Structured data with all task properties |
| Text | Quick overview | Simple human-readable list |
| Detailed Text | Archiving | Extended info with notes, dates, categories |
| Detailed CSV | Data analysis | All properties in tabular format |
The application supports two languages:
- English (EN) - Default language
- German (DE) - Full German translation
Switch between languages using the DE/EN toggle in the top-right corner of the header. All UI elements, messages, and dialogs are translated.
- Framework: .NET 8.0 WPF
- Authentication: MSAL (Microsoft Authentication Library) with Device Code Flow
- Excel Generation: ClosedXML
- API: Microsoft Graph API
- JSON Serialization: Newtonsoft.Json
The application follows a service-oriented architecture:
2025-app-todo-export/
βββ Models/
β βββ TodoList.cs # List model
β βββ TodoTask.cs # Task model
β βββ ExportFormat.cs # Export format enum
βββ Services/
β βββ AuthService.cs # Microsoft authentication (MSAL)
β βββ GraphApiService.cs # Microsoft Graph API client
β βββ ExportService.cs # Export functions
βββ Utils/
β βββ Localization.cs # Multi-language support
βββ MainWindow.xaml # UI
βββ MainWindow.xaml.cs # Code-behind
βββ App.xaml # App resources
βββ App.xaml.cs
GET /me/todo/lists- Retrieve all listsGET /me/todo/lists/{listId}/tasks- Retrieve tasks for a list
The application supports pagination via @odata.nextLink for lists with many tasks.
The application uses Device Code Flow for authentication:
- No manual token input required
- Secure token caching with Windows DPAPI encryption
- Automatic token refresh
- Supports personal Microsoft accounts (Outlook.com, Hotmail, Live) and work accounts
- Make sure you have an active internet connection
- Check if your Microsoft account has access to Microsoft To Do
- Try signing out and signing in again
- Ensure you're using Microsoft To Do
- Check if you're signed in with the correct account
- System lists (Flagged Email, etc.) are automatically filtered out
- Ensure you have write permissions for the chosen location
- Check if sufficient disk space is available
- Try selecting fewer lists if you have many tasks
- If you experience persistent login issues, you can clear the token cache
- The cache is stored in:
%LocalAppData%\TodoExport\ - Delete the
todo_export_cache.binfile to reset authentication
- This app uses Microsoft's official authentication (MSAL)
- Your credentials are never stored by this app
- Only an authentication token is cached locally in
%LocalAppData%\TodoExport\ - The app only requests read-only permissions - no modifications are made:
Tasks.Read- Read access to your To Do lists (for export only)User.Read- Read your basic profile (to display your name)offline_access- Refresh token for automatic re-login (optional)
- No data is sent to any third-party servers
- Token Storage: Access tokens are encrypted using Windows DPAPI (Data Protection API)
- Local Storage Only: All data is stored locally on your machine
- Token Cache: Encrypted token cache file is user-specific and machine-specific
cd 2025-app-todo-export
dotnet builddotnet build --configuration Releasedotnet publish -c Release -r win-x64 --self-contained trueThe self-contained build includes the .NET 8.0 runtime and works on any Windows 10/11 system without additional installation.
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
This project is licensed under the MIT License - see the LICENSE file for details.
If you find this project useful and would like to support its development, consider buying me a coffee! β
- Microsoft-To-Do-Export β Original inspiration
- TodoVoodoo β Additional inspiration
- Microsoft Graph API β API documentation
- MSAL.NET β Authentication library
- ClosedXML β Excel generation
Made with β€οΈ for everyone who wants a simple way to backup their tasks.
Note: This project is an unofficial solution and is not connected to Microsoft or Todoist.
