bergercookie / syncall

Bi-directional synchronization between services such as Taskwarrior, Google Calendar, Notion, Asana, and more
MIT License
433 stars 39 forks source link

Cannot enter new all-day events #126

Closed bergercookie closed 1 month ago

bergercookie commented 1 month ago

Originally posted by @DeadlySquad13 in https://github.com/bergercookie/syncall/issues/49#issuecomment-2282760990


Hello, @bergercookie, thanks for your hard work! Unfortunately, I still see this issue on 1.8.6 version.

First time sync was ok but on subsequent calls an exception was raised during program execution on Detecting changes from GCal....

  File "/shared/soft-projects-/ds13/Projects/--personal/InfoField__/TimeManagement__/InfoField__Scheduler/.direnv/python-3.12/bin/tw_gcal_sync", line 10, in <module>
    sys.exit(main())
             ^^^^^^
  File "/shared/soft-projects-/ds13/Projects/--personal/InfoField__/TimeManagement__/InfoField__Scheduler/.direnv/python-3.12/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/shared/soft-projects-/ds13/Projects/--personal/InfoField__/TimeManagement__/InfoField__Scheduler/.direnv/python-3.12/lib/python3.12/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/shared/soft-projects-/ds13/Projects/--personal/InfoField__/TimeManagement__/InfoField__Scheduler/.direnv/python-3.12/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/shared/soft-projects-/ds13/Projects/--personal/InfoField__/TimeManagement__/InfoField__Scheduler/.direnv/python-3.12/lib/python3.12/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/shared/soft-projects-/ds13/Projects/--personal/InfoField__/TimeManagement__/InfoField__Scheduler/.direnv/python-3.12/lib/python3.12/site-packages/syncall/scripts/tw_gcal_sync.py", line 218, in main
    aggregator.sync()
  File "/shared/soft-projects-/ds13/Projects/--personal/InfoField__/TimeManagement__/InfoField__Scheduler/.direnv/python-3.12/lib/python3.12/site-packages/syncall/aggregator.py", line 178, in sync
    changes_A = self.detect_changes(self._helper_A, items_A)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/shared/soft-projects-/ds13/Projects/--personal/InfoField__/TimeManagement__/InfoField__Scheduler/.direnv/python-3.12/lib/python3.12/site-packages/syncall/aggregator.py", line 160, in detect_changes
    if self._item_has_update(prev_item=cached_item, new_item=item, helper=helper):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/shared/soft-projects-/ds13/Projects/--personal/InfoField__/TimeManagement__/InfoField__Scheduler/.direnv/python-3.12/lib/python3.12/site-packages/syncall/aggregator.py", line 265, in _item_has_update
    return not side.items_are_identical(
               ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/shared/soft-projects-/ds13/Projects/--personal/InfoField__/TimeManagement__/InfoField__Scheduler/.direnv/python-3.12/lib/python3.12/site-packages/syncall/google/gcal_side.py", line 253, in items_are_identical
    item[key] = cls.parse_datetime(item[key])
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/shared/soft-projects-/ds13/Projects/--personal/InfoField__/TimeManagement__/InfoField__Scheduler/.direnv/python-3.12/lib/python3.12/site-packages/syncall/google/gcal_side.py", line 236, in parse_datetime
    raise RuntimeError(f"Invalid structure dict: {dt}")

Invalid structure dict: {'date': '2024-08-12'}
16:28:58.59 | ERROR     | Application failed; Below you can find the error message and stack trace. If you think this is a bug, attach this stack trace to create a new issue -> [https://github.com/bergercookie/syncall/issues].
NoneType: None
bergercookie commented 1 month ago

The latest commit should now solve it. I'll push a new tag once master is green and it should be part of 1.8.7 shortly