Giter VIP home page Giter VIP logo

ultimate-todoist-sync-for-obsidian's Introduction

Ultimate Todoist Sync for Obsidian

The Ultimate Todoist Sync plugin automatically creates tasks in Todoist and synchronizes task state between Obsidian and Todoist.

Demo

Usage

Alt Text

Settings page

Features

Feature Sync from Obsidian to Todoist Sync from Todoist to Obsidian Description
Add task 🔜
Delete task 🔜
Modify task content
Modify task due date
Modify task description 🔜 🔜
Modify task labels/tags 🔜
Mark task as completed
Mark task as uncompleted
Modify project 🔜 🔜
Modify section 🔜 🔜
Modify priority 🔜 Currently, task priority only support one-way synchronization from Todoist to Obsidian.
Add reminder 🔜 🔜
Move tasks between files 🔜 🔜
Added-at date 🔜 🔜
Completed-at date 🔜 🔜
Task notes 🔜 Currently, task notes/comments only support one-way synchronization from Todoist to Obsidian.

Installation

From within Obsidian

From Obsidian v1.3.5+, you can activate this plugin within Obsidian by doing the following:

  1. Open Obsidian's Settings window
  2. Select the Community plugins tab on the left
  3. Make sure Restricted mode is off
  4. Click Browse next to Community Plugins
  5. Search for and click on Ultimate Todoist Sync
  6. Click Install
  7. Once installed, close the Community Plugins window
  8. Under Installed Plugins, activate the Ultimate Todoist Sync plugin

You can update the plugin following the same procedure, clicking Update instead of Install

Manually

If you would rather install the plugin manually, you can do the following:

  1. Download the latest release of the plugin from the Releases page.
  2. Extract the downloaded zip file and copy the entire folder to your Obsidian plugins directory.
  3. Enable the plugin in the Obsidian settings.

Configuration

  1. Open Obsidian's Settings window
  2. Select the Community plugins tab on the left
  3. Under Installed plugins, click the gear icon next to the Ultimate Todoist Sync plugin
  4. Enter your Todoist API token

Settings

  1. Automatic synchronization interval time The time interval for automatic synchronization is set to 300 seconds by default, which means it runs every 5 minutes. You can modify it yourself.
  2. Default project New tasks will be added to the default project, and you can change the default project in the settings.
  3. Full vault sync By enabling this option, the plugin will automatically add #todoist to all tasks, which will modify all files in the vault.

Usage

Task format

Syntax Description Example
#todoist Tasks marked with #todoist will be added to Todoist, while tasks without the #todoist tag will not be processed.If you have enabled Full vault sync in the settings, #todoist will be added automatically. - [ ] task #todoist
📅YYYY-MM-DD The date format is 📅YYYY-MM-DD, indicating the due date of a task. - [ ] task content 📅2025-02-05 #todoist
Supports the following calendar emojis.📅📆🗓🗓️
#projectTag New tasks will be added to the default project(For example, inbox .), and you can change the default project in the settings or use a tag with the same name to specify a particular project. - [ ] taskA #todoist will be added to inbox.
- [ ] taskB #tag #testProject #todoist will be added to testProject.
#tag Note that all tags without a project of the same name are treated as normal tags - [ ] task #tagA #tagB #tagC #todoist
!!<number> The priority of the task (a number between 1 and 4, 4 for very urgent and 1 for natural).
Note: Keep in mind that very urgent is the priority 1 on clients. So, the priority 1 in the client corresponds to the number 4 here (Because that's how the official API of Todoist is designed.).
- [ ] task !!4 #todoist

Set a default project for each file separately

The default project in the setting applies to all files. You can set a separate default project for each file using command.

You can see the current file's default project in the status bar at the bottom right corner.

Disclaimer

This plugin is for learning purposes only. The author makes no representations or warranties of any kind, express or implied, about the accuracy, completeness, or usefulness of this plugin and shall not be liable for any losses or damages resulting from the use of this plugin.

The author shall not be responsible for any loss or damage, including but not limited to data loss, system crashes, computer damage, or any other form of loss arising from software problems or errors. Users assume all risks and are solely responsible for any consequences resulting from the use of this product.

By using this plugin, you agree to be bound by all the terms of this disclaimer. If you have any questions, please contact the author.

Contributing

Contributions are welcome! If you'd like to contribute to the plugin, please feel free to submit a pull request.

License

This plugin is released under the GNU GPLv3 License.

ultimate-todoist-sync-for-obsidian's People

Contributors

amildahl avatar heroblackink avatar klaudioz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ultimate-todoist-sync-for-obsidian's Issues

due date + 1day between apps sync (obsidian-todoist-sunsama)

for example..

I created a task for October 1st in Obsidian and synced it to Todoist.
The task for October 1st appeared in the Todoist interface.
In the Todoist tab of Sunsama, the task for October 1st (test task from Obsidian) is visible.

And I registered this task as a task for October 1st in Sunsama. However, as soon as I registered it, the task for October 1st in Todoist (shown in the bottom screen) changed to October 2nd.
The time zones of all three programs are same

sunsama 2023-10-01
Todoist, obsidian 2023-10-02

  • sunsama is one of porductivity apps; managing tasks and schedule with intergration between apps(such as todoist, google calendar, asana etc)

Firstly I contacted to sunsama app, and they replied like this..
-> When Obsidian creates the task, it's incorrectly adding an extra 8 hours to the time which it shouldn't if it wants to indicate that something is due on a certain day but not a certain time...

So I edited three lines from file(main.js) of your plugin
// localDateString = localDateString + "T08:00"; ::: I comment out this one
let localDateObj = new Date(localDateString);

After that, at least the date synchronization between Obsidian, Todoist, and Sunsama seems to be working correctly.

The reason for adding 8 hours to the due date and the potential issues that arise when removing that part are not known to me. Is there any other alternative solution?

Failed to load plugin

After following the instructions I'm getting:

Failed to load plugin ultimate-todoist-sync (1.0.35)

I'm using Obsidian v1.2.5

Also include todos written in excalidraw

When I create a text element in Excalidraw with

- [ ] this is a test 📅 2023-08-29 #todoist

it doesn't get synchronized to Todoist. Is this somehow possible - would be aweseome!

Support for dataview/ tasks plugin syntax for dates

Hi there,
love this plugin! Small request, but I noticed that the syntax for adding dates is currently 📅YYYY-MM-DD (no space between the emoji and the date) — I was wondering if it might be possible to also support the dataview/ tasks plugin format for dates. which is
📅(space)YYYY-MM-DD. I

Select Obsidian Note(s) to Sync Between

This plugin looks great!

I would love the ability to create an Obsidian Note based on a Project Name, then sync exclusively there.

For my use case, I send Obsidian tasks to a specific page, rather than sync it across the board.

Add support for sub-tasks

Would it be possible to add subtask syncing?

For example:

  • Task #todoist
    • Subtask 1 #todoist
    • Subtask 2 #todoist

Picture of subtasks in Todoist:
image

I understand this would require parsing multiple lines of the Obsidian notes, and looks like a substantial rewrite - maybe like work needed for #26 . Would happily contribute money towards development on this feature.

Thank you for an excellent plugin!

Sync Tasks Without Direct Editing

I was amazed by how quickly this syncs tasks into Todoist!

I noticed that this plugin does not always sync tasks when the at-issue task is not directly edited. For instance, I often add tasks to a note by using Quickadd, which drops the task elsewhere in the note (in my case, at the very bottom of the note).

It appears that if I do not actively edit the task (that is, by having my cursor inside the task within the relevant note), it does not sync to Todoist. However, as soon as I move my cursor into the relevant task to edit something, it immediately syncs to Todoist and adds a Todoist ID.

Could your plugin be made to work so that it scans for tasks across the entire active note, rather than the portion currently being edited?

Auto Sync all tasks if default project for the file is set

If a project page has multiple tasks e.g. 25 tasks, manually adding "#todoist" is too time-consuming.

if the default project is set for a file, then automatically sync all tasks in the file. without the need for "#todoist".

it is also easy to forget adding the #todoist tag, if you are trying to add multiple tasks e.g. capturing tasks during a meeting.

command-set-default-project-for-file

Support for nested tags

Not sure if this is a bug report or a feature request but I noticed that tags don't sync properly for me and I think that has to do with the fact that I mostöy use nested tags. For example, all my tags designating a project start with #p/ so that the Garden project would be tagged #p/garden, but the plugin only syncs the top level tag (#p) to todoist, not the rest.

So, what I'm saying is: it would be nice if the entire tag could be synced (including the "path")

configuration page blank

Release 1.0.20 shows a blank configuration page on a new install. tested on Mac Monterey 12.6.3, Windows 10, obsidian v1.1.16

Plugin not syncing

Hi,

I just installed v1.0.36 of the plugin into my Obsidian v1.3.5. I entered my Todoist API key and synced the projects and selected a default project. All of that worked fine. But when I press the sync button in the sidebar, nothing happens. No message, no tasks in Todoist, nothing the in Chrome DevTools console. Not sure where else I can look for information. Any idea what might be wrong?

Appreciation post! 👏

This plugin is awesome! Just waiting for ability to send Tasks from Todoist to Obsidian before getting stuck in as that's my primary use case. But can see how this in current form would be amazing for others.

Currently hacking real-time Todoist -> Obsidan sync via Make.com web hooks and Obsidian webhook plugin or using the Todoist-text-plugin for manual processing.

[Feature Request] Exclude # When Syncing Tags to Todoist

I've noticed that, when trying to add one of my Todoist labels to a task in Obsidian for syncing purposes, the tag continues to have the # indicator once synced to Todoist.

For instance, I use a "@Next" label inside to Todoist to designate tasks I wish to work on at the next opportunity. But if I put #Next on a task in Obsidian, the label that appears on the task in Todoist isn't @Next but rather @#Next. Could it be made so that the # character is not carried over when syncing from Obsidian to Todoist?

Read date with space as well

I would very much wish that a date is also read out when it is written as follows: ICON DATE
Meaning there is a space between the icon and the date.

I am using the Tasks plugin and it always automatically puts a space in between, so I have to manually change it so that it can be processed by your plugin.

Automatically load projects

Automatically load projects from todoist every time Obsidian is launched.

This will eliminate the need to remember to manually load projects from settings

Suggestion for task format change

Hello, developer. I came across a plugin (obsidian-tasks)that works well with this plugin and provides the ability to quickly add task formats as shown below.

todo2

so,I would like to suggest changing the format of the task to the following:

Syntax Description Example
#todoist Tasks marked with #todoist will be added to Todoist, while tasks without the #todoist tag will not be processed.If you have enabled Full vault sync in the settings, #todoist will be added automatically. - [ ] task #todoist
📅YYYY-MM-DD The date format is 📅YYYY-MM-DD, indicating the due date of a task. - [ ] task content 📅2025-02-05 #todoistSupports the following calendar emojis.📅📆🗓🗓️
#projectTag New tasks will be added to the default project(For example, inbox .), and you can change the default project in the settings or use a tag with the same name to specify a particular project. - [ ] taskA #todoist will be added to inbox.- [ ] taskB #tag #testProject #todoist will be added to testProject.
#tag Note that all tags without a project of the same name are treated as normal tags - [ ] task #tagA #tagB #tagC #todoist
🔺 🔼 ⏫ 🔽 The priority of the task corresponds to four levels, 🔺 being the highest and most urgent level, 🔼 being the second level, ⏫ being the third level, and 🔽 being the fourth level. - [ ] task 🔺 #todoist
🔁 Represents a recurring task task2⏫ 🔁 every week

Avoid Adding Tags with Same Name as Projects

If I understand correctly, your plugin requires adding #todoist and #<project_name> in order to sync tasks to Todoist and to sync to a particular project, respectively.

I've noticed that each synced task also takes on both tags (#todoist & #<project_name>) within Todoist.

Could things be adjusted so that no tag is added when the tag is used only for syncing purposes—that is, where it is only the required #todoist or #<project_name> tag needed to sync to the desired project?

Sub Project Support

Eg: I have Projects set up as:

#Work
#Work/Read
#Work/Process

It only picks up Work and adds the rest into description

I might be missing something...

but does this plugin also have the ability to list a list of existing todoist tasks in my notes? I can add tasks, but I have not found a way to display them in a note?

Sync stopped working in latest version

Was running 1.0.36 and was able to create new tasks in my notes without issue. After upgrading to 1.0.39, the sync seems to have stopped working. I created a task in a note with the #todoist tag and it's not syncing to my inbox.

Let me know if you need more info.

Please do not hide my `%%comments%%` or `%%other things%%` content

我发现我开启此插件时,我的注释会被隐藏掉,即使开了编辑模式,而且是在源码模式下。
I found that when I open this plugin, my %%comments%% or %%other things%% will be hidden, even when editing mode is turned on and in source mode.

请不要隐藏我的注释内容,感谢。
Please do not hide my %%comments%% or %%other things%% content, thank you.

Before using this plugin:
image

After using this plugin:
image

Checking off in Todoist remains unfinished in Obsidian

If I check off a task in Todoist, i.e. mark it as done, then perform the sync in Obsidian, I do get the message that the ID is closed in Todoist, but the task is not checked off in Obsidian. However, if I check off the task in Obsidian, the task is also immediately checked off in Todoist.

Make it work for canvas cards

First of all, brilliant plugin and good job!

I would love to see it work for canvas cards, e.g.

Screenshot 2023-07-05 at 6 58 05 AM

Thanks for the hard work!

Some tasks, namely in the date, swap day with month.

I have the problem (1.0.40 installed) that the date changes constantly for some tasks. Then the day and the month are always swapped. A short time later a new sync comes, which corrects this again, and then another one comes, where it is swapped again.

The date is stored here as ICON YYYY-MM-DD.

Still not Todoist -> Obsidian?

With all due respect, how can this be called the "ultimate todoist sync plugin for obsidian" if it doesn't even sync from todoist to obsidian?

Adding Task Time

Hey!

Thanks for this Plugin.
It would be nice to additionally support setting the time for the specific task.
A convenient way would be like:

  • XY #todoist @15.06.2023:18:00

This issue somehow covers 3 suggestions:

  1. Support for @ as date indicator
  2. Support for DD.MM.YYYY Layout (could be toggled in settings?)
  3. Inline syntax for time with ":"

Would be nice to hear from you :)

Request: Have a config that allows default tags for all linked tasks on a page

Hi,
I work on notes that have front matter values matching a particular client and project

It would be good if there was a way to use front matter from a file;

  • as default values for any tasks linked to todoist
  • to specify whether all tasks should be linked into Todoist

i.e.

---
client: My Big Client
project: Secret Project
todoist_sync: true
---

Would turn this

- [ ] First project task 

into this, automatically

- [ ] First project task #todoist #My_Big_Client #Secret_Project 

[Bug]Tasks in the code block are recognized

Tasks in the code block are recognized, which is not very pleasing. It is not possible to write notes about this plugin either, as they will be automatically recognized as tasks for Todoist.

FR: Allow custom keyword for tasks

Currently we need to use #todoist to tag tasks to sync with todoist

It would be great to expose this as a variable so we can define a custom keyword, based on needs. This will also allow to streamline with the Tasks plugin as well, which has a similar feature to define which checklist items should be parsed as "tasks" based on a user defined tag.

Support for task statuses other than done/not done

It looks like the plugin currently only recognizes tasks as tasks when they are either completed (- [x] or n -[ ]. Other task statuses like questions (- [?]) or "in progress" (- [/]) are not recognized as tasks.

It would be great if the plugin could detect any such pattern as a task (i.e. no matter what is between the square brackets). Assuming that this job is done by a regex, it would be a rather easy code change. However, it would probably be necessary to define some more statuses as "done", i.e. they should be treated by Todoist as done, such as - [-] for cancelled.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.