Skip to content

Obsidian Tasks syncronize with Google Tasks#159

Open
jmriego wants to merge 1 commit into
bergercookie:masterfrom
jmriego:obsidian
Open

Obsidian Tasks syncronize with Google Tasks#159
jmriego wants to merge 1 commit into
bergercookie:masterfrom
jmriego:obsidian

Conversation

@jmriego

@jmriego jmriego commented Jan 1, 2026

Copy link
Copy Markdown

Description

I have created a script and sync side for Tasks in Markdown format. Specially following the format used in Obsidian.
It includes the title of the tasks, the completion status and the due/scheduled and done dates.

https://publish.obsidian.md/tasks/Introduction

Fixes # (issue) #121

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to
    not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

I have ran many manual tests including trying to break the syncronization. The main issue is that Markdown tasks are just text so there's no way of having a stable id. The way I have tried to solve that is to pickle changes in hash ids from tasks titles coming from Google Tasks. It saves a hidden file in the same directory as the tasks Markdown itself.

  • Test basic synchronization
  • Test empty files
  • Test changes in task title coming from Google Tasks
  • Changes in tasks titles in Markdown
  • Check for changes simultateously in both sides (for conflicts)

Checklist

  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • Any dependent changes have been merged and published in downstream modules
@jmriego

jmriego commented Jan 1, 2026

Copy link
Copy Markdown
Author

This is ready to go but it would be missing some unit tests. Before I do that I'd like to check that in general you're ok with the approach and anything you'd like me to change or improve on

@shymega

shymega commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

14 commits is a lot. Please squash them into maintainable commits.

@bergercookie I'll defer to you whenever you want this in main. I think we're better off waiting until I get round to the entrypoint plugin design.

@jmriego

jmriego commented Jun 28, 2026

Copy link
Copy Markdown
Author

no problem at all. I just rebased and made it 1 commit but I'm happy to make any changes needed here

@shymega

shymega commented Jun 28, 2026

Copy link
Copy Markdown
Collaborator

no problem at all. I just rebased and made it 1 commit but I'm happy to make any changes needed here

@jmriego I feel like the commit message could be improved.

I'd recommend something more formal and imperative:

obsidian: Initial implementation of synchronization to Obsidian Tasks

@jmriego jmriego force-pushed the obsidian branch 2 times, most recently from 17ddf2d to a3287bc Compare June 28, 2026 20:59
@shymega

shymega commented Jun 28, 2026

Copy link
Copy Markdown
Collaborator

Awesome, thanks!

@jmriego

jmriego commented Jun 28, 2026

Copy link
Copy Markdown
Author

no worries! sorry, I'm trying to fix the issue with the poetry lock file. I did it from a computer that only had access to libraries through a controlled cache so that seems to be causing the issue with the file

@jmriego jmriego force-pushed the obsidian branch 3 times, most recently from 943ccbf to 55da35a Compare June 29, 2026 20:05
@jmriego

jmriego commented Jun 29, 2026

Copy link
Copy Markdown
Author

I think this should be good to go now!

@shymega

shymega commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator

Just a heads-up - we've moved to uv, wasn't sure if you knew?

@coveralls

Copy link
Copy Markdown

Coverage Report for CI Build 28399320195

Warning

No base build found for commit 1c02a8c on master.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 55.337%

Details

  • Patch coverage: 179 uncovered changes across 5 files (87 of 266 lines covered, 32.71%).

Uncovered Changes

File Changed Covered %
syncall/filesystem/markdown_tasks_side.py 106 29 27.36%
syncall/filesystem/markdown_task_item.py 68 27 39.71%
syncall/scripts/md_gtasks_sync.py 52 19 36.54%
syncall/tw_gtasks_utils.py 30 3 10.0%
syncall/cli.py 10 9 90.0%

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 3260
Covered Lines: 1804
Line Coverage: 55.34%
Coverage Strength: 0.55 hits per line

💛 - Coveralls
@jmriego

jmriego commented Jun 29, 2026

Copy link
Copy Markdown
Author

no, sorry, I didn't know. I'll have a look at it this week

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants