Obsidian plugin to sync external sources like Google Tasks to your vault.
This plugin fetches data from external sources and syncs them to a target Markdown document under a configurable heading. The first supported source is Google Tasks, with more integrations planned. Inspired by Getting Things Done (GTD), but equally suited to any workflow based on to-do lists or Kanban boards. Designed to integrate well with the Obsidian Kanban plugin and the Obsidian Tasks plugin.
- Scheduled background sync on a configurable interval (minutes)
- Manual sync command from the Command Palette
- Configurable target Markdown file to write to
- Configurable target heading under which items will be inserted
- Google Tasks integration:
- OAuth 2.0 (Authorization Code with PKCE)
- Select which task lists to sync
- Only incomplete Google Tasks are synced into Obsidian; when you complete a task in Google it drops out of the incoming feed and the corresponding line is removed from the items under the target heading in the Obsidian note on the next sync
- Basic bidirectional completion status sync for active tasks: checking/unchecking tasks in Obsidian syncs completion status back to Google Tasks
- Node.js >= 22.15 (for builds and tests)
- Obsidian Desktop
- (Optional) Obsidian Kanban plugin for task board views
- (Optional) Obsidian Tasks plugin for enhanced task management
Manual install into a vault:
- Build the plugin (see Development below)
- Copy these files to your vault:
Vault/.obsidian/plugins/syncer/manifest.jsonmain.jsstyles.css
- Enable “Syncer” in Obsidian → Settings → Community plugins
Open Obsidian settings and navigate to Community plugins → Syncer.
GTD tip: The plugin ships with sensible defaults for a GTD-style setup—GTD.md as the target file and ## Inbox as the heading. You can keep these for a classic capture inbox, or change them to suit your workflow.
- Connect your Google account using the Connect button in the plugin's settings tab
- Select task lists to sync via the multi-select input
Manual Sync: Triggers a once-off sync and restarts the scheduler
Install dependencies, then build with esbuild.
npm clean-installnpm run build:devSync to your vault with:
npm run syncYou will need to create a dev Obsidian vault and set the OBSIDIAN_VAULT_PLUGIN_DIR_DEV variable in a .envrc file to use the sync script. See envrc.example for an example.
It is also recommended to install the Hot-Reload plugin for automatic reloads.
This plugin includes code adapted from the following projects:
- Periodic Notes (liamcain/obsidian-periodic-notes) - The
SuggestandFileSuggestcomponents used in the settings tab are based on code from this plugin.
- Update version:
npm run version(ornpm version patch|minor|major) - Build production:
GOOGLE_CLIENT_ID_PROD=your-id npm run build:prod - Verify:
npm run release:check - Create release:
- Automated:
git tag v1.0.0 && git push origin v1.0.0(triggers release workflow) - Manual: Create GitHub release with
main.js,manifest.json,styles.css
- Automated:
- Submit to Obsidian Community Plugins
