Documentation

Commentary

ticktick.el provides two-way synchronization between TickTick
(a popular task management service) and Emacs Org Mode.

FEATURES:

- Bidirectional sync: changes in either TickTick or Org Mode are reflected
  in both systems
- Task deletion synchronization: deletions on one side propagate to the other
- Configurable deletion behavior: ask, archive, or auto-delete
- OAuth2 authentication with automatic token refresh
- Preserves task metadata: priorities, due dates, completion status,
  descriptions, and tags
- Project-based organization matching TickTick's structure
- Optional automatic syncing on focus changes and timer-based intervals
- Tag synchronization using Org mode's native tag syntax

SETUP:

1. Register a TickTick OAuth application at:
   https://developer.ticktick.com/

2. Configure your credentials:
   (setq ticktick-client-id "your-client-id")
   (setq ticktick-client-secret "your-client-secret")

3. Authorize the application:
   M-x ticktick-authorize

4. Perform initial sync:
   M-x ticktick-sync

USAGE:

Main commands:
- `ticktick-sync': Full bidirectional sync (includes deletion sync)
- `ticktick-fetch-to-org': Pull tasks from TickTick to Org
- `ticktick-push-from-org': Push Org tasks to TickTick
- `ticktick-authorize': Set up OAuth authentication
- `ticktick-refresh-token': Manually refresh auth token
- `ticktick-toggle-sync-timer': Toggle automatic timer-based syncing
- `ticktick-delete-task-at-point': Delete task at cursor from both sides
- `ticktick-show-sync-state': View current synchronization state
- `ticktick-retry-failed-deletions': Retry any failed deletion operations
- `ticktick-clear-sync-state': Reset sync state (use if corrupted)

Tasks are stored in the file specified by `ticktick-sync-file'
(defaults to ~/.emacs.d/ticktick/ticktick.org) with this structure:

* Project Name
:PROPERTIES:
:TICKTICK_PROJECT_ID: abc123
:END:
** TODO Task Title [#A]                                    :work:urgent:
DEADLINE: <2024-01-15 Mon>
:PROPERTIES:
:TICKTICK_ID: def456
:TICKTICK_ETAG: xyz789
:SYNC_CACHE: hash
:LAST_SYNCED: 2025-01-15T10:30:00+0000
:END:
Task description content here.

CUSTOMIZATION:

Key variables you can customize:
- `ticktick-sync-file': Path to the org file for tasks
- `ticktick-dir': Directory for storing tokens and data
- `ticktick-autosync': Enable automatic syncing on focus changes
- `ticktick-sync-interval': Enable automatic syncing every N minutes
- `ticktick-httpd-port': Port for OAuth callback server
- `ticktick-delete-behavior': How to handle deletions (ask/archive/delete/sync-only)
- `ticktick-archive-location': Where to archive deleted tasks (separate-file/archive-heading)
- `ticktick-archive-file': Path to archive file for deleted tasks
- `ticktick-confirm-deletions': Whether to prompt for deletion confirmation
- `ticktick-deletion-conflict-policy': How to resolve modify-delete conflicts

For debugging OAuth issues:
M-x ticktick-debug-oauth

Consumers

Reverse Dependencies

No reverse dependencies recorded.