| name | task-sync |
| description | Synchronize TickTick (Dida) and Google Tasks bidirectionally, including list/project mapping, task content sync, completion sync, and smart-list export (Today, Next 7 Days, All). Use when users ask to set up OAuth, run or schedule sync, fix mismatched/deleted/completed tasks, or troubleshoot Google Calendar duplicate behavior caused by due-date handling. |
Task Sync
Operate and troubleshoot bidirectional task sync between TickTick and Google Tasks.
Run
python {baseDir}/sync.py
Setup Checklist
- Python 3.10+ with:
google-auth google-auth-oauthlib google-api-python-client requests
- Enable Google Tasks API and run:
python {baseDir}/scripts/setup_google_tasks.py
- Create TickTick developer app and run:
python {baseDir}/scripts/setup_ticktick.py
- Configure
{baseDir}/config.json token and data paths.
Expected Behavior
- Sync Google Task Lists
<-> TickTick Projects by same name.
- Sync task title, completion status, and notes/content bidirectionally.
- Map TickTick priority to Google title prefix:
[★] high, [!] medium.
- Export TickTick smart lists (Today, Next 7 Days, All) to Google Tasks one-way.
Due-Date Rule (Calendar Duplicates)
- Keep due dates only in the "All" smart list.
- For other synced lists, forward date to TickTick then clear Google due date.
- Treat this as the source-of-truth rule when debugging duplicate Calendar items.
Automation
*/10 * * * * /path/to/python {baseDir}/sync.py >> /path/to/sync.log 2>&1
Use OpenClaw cron if available.
Troubleshooting Workflow
- Re-run both OAuth setup scripts if auth errors appear.
- Verify
config.json paths point to existing token files.
- Run
python {baseDir}/sync.py and inspect {baseDir}/data/sync_log.json and {baseDir}/data/sync_db.json.
- Check API wrappers:
{baseDir}/utils/google_api.py
{baseDir}/utils/ticktick_api.py