Skip to content

desimpson/syncer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

120 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Syncer

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.

Screenshot of Syncer plugin

Features

  • 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

Requirements

Installation

Manual install into a vault:

  1. Build the plugin (see Development below)
  2. Copy these files to your vault: Vault/.obsidian/plugins/syncer/
    • manifest.json
    • main.js
    • styles.css
  3. Enable “Syncer” in Obsidian → Settings → Community plugins

Configuration

Open Obsidian settings and navigate to Community pluginsSyncer.

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.

Google Tasks:

  • Connect your Google account using the Connect button in the plugin's settings tab
  • Select task lists to sync via the multi-select input

Commands:

  • Manual Sync: Triggers a once-off sync and restarts the scheduler

Development

Install dependencies, then build with esbuild.

npm clean-install
npm run build:dev

Sync to your vault with:

npm run sync

You 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.

Attribution

This plugin includes code adapted from the following projects:

Releasing

  1. Update version: npm run version (or npm version patch|minor|major)
  2. Build production: GOOGLE_CLIENT_ID_PROD=your-id npm run build:prod
  3. Verify: npm run release:check
  4. 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
  5. Submit to Obsidian Community Plugins

About

Obsidian plugin to sync external sources like Google Tasks to your vault.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors