+ Add Question

Support for additional URL protocols please


Can we please have support for additional URL protocols? Currently, only http://something links work and become an active link on the web and in the apps. Secretly of course, evernote:// links work and enable direct links to evernote items. Support for more protocols will enable users to put Todoist to more use.

Support for message:// in particular would enable proper Apple Mail integration using trivial AppleScript and the API. x-devonthink-item:// would also be good to enable integration with DEVONthink.

All responses

Brendon Wadey  staff
Replied on Feb 04, 2014 - 03:27 UTC

Hi Paul,

Thanks for the suggestion, we do hope we can support more items in the future. Feel free to add this to our votebox. http://todoist.com/Vote/


PK  premium
Replied on Feb 04, 2014 - 03:32 UTC

Thanks for the fast reply. This would be super easy to code since the http parser is already written. *Minutes* for your developers, including writing the tests.

Klaus Thuesen  premium
Replied on Feb 05, 2014 - 14:09 UTC

What a coincidence, I just asked the exact same thing. I didn't see this thread while I was searching, so decided to create a thread and ask:

But I'm afraid "Feel free to add this to our votebox" basically means it will not be done anytime soon, at least thats how it usually goes when getting similar replies from companies :)

Will give it a few days and see, hoping that Todoist will surprise me and actually make it happen. Not to "slam with the doors", but not being able to link to my email messages is a dealbreak for me, I use the feature several times daily with my current task management system.

David Trey  staff
Replied on Feb 05, 2014 - 15:16 UTC

Hello Klaus,

We really do consider every single request in the Votebox and each message is read and we plan the features we implement based upon this, but of course based on the amount of different requests, we can't implement everything in near future and have to carefully plan the order of these implementations based on multiple factors.

Please note that you can manage your emails with Todoist either by linking to them if you're using an email client for which we have plugins (Gmail with browsers, Outlook, Thunderbird) or alternatively, by sending the message to your Todoist projects which work regardless of the email client, but instead of linking the message, it converts it to a task with the entire body becoming a note. Please refer to this post on our blog for details: https://todoist.com/blog/2013/01/zero-inbox-policy-with-todoist/

Best regards,

Klaus Thuesen  premium
Replied on Feb 05, 2014 - 15:30 UTC

Hi David,

Thanks for your reply.

You don't have any plugins for Apple Mail and switching the e-mail software that I have used and liked for the past 7 years is not currently on my mind :-)

I have tried to forward emails to Todoist as well, but this is basically the same as copy/pasting the content over, except it's faster, but it does not really solve anything. It does not give me a way of quickly replying to the sender of the email if I have questions or report "job done". It also does not save the files that was in the e-mail, they are kept over in Mail so I have to manually add them to the task afterwards. It will be much easier to just paste the URL to the message, exactly like Evernote links, so if I need to refer to the e-mail or do anything e-mail based, I can just click on the link and it takes me to Mail.

Like PK wrote, it's really just a matter of minutes for your developers to get this to work. Check if the begining of the URL is "message://" and if it is, then do NOT add "http://" to the front of it. Leave the URL as is, and "message://" links on the Mac will automatically open up the correct e-mail in Apple Mail.app.

A few minutes of developer time would result in [x years] * $29 revenue for Todoist on my part :) Sadly, without this feature, it's a deal breaker and I will have to use the 30 day money back guarantee. I already compromise on the lack of "Area of Focus"-part (to split into a "Work" and "Personal" use/view) that Todoist not have, but too many compromises and I might as well stick with Nirvana, where compromises obviously also exists.

PK  premium
Replied on Feb 05, 2014 - 15:31 UTC

Trey -

Major problems with the "email to Todoist" system include (1) attachments are not supported (2) the connection to any threaded email conversation is broken (3) unsuitable for e.g. financial information if used professionally (can't email outside the company).

This really is a 5 minute fix ( ['http', 'evernote'] becomes ['http', 'evernote', 'message'] ).

Klaus -

Lets see what happens. Since it increases the stickiness and power of the Todoist system ($$$), I hope they implement this feature quickly and your votebox analysis is wrong :-)

David Trey  staff
Replied on Feb 05, 2014 - 15:40 UTC

I have passed your request directly to the devs now :)

Best regards,

Klaus Thuesen  premium
Replied on Feb 05, 2014 - 16:56 UTC

Thanks a lot David.

I will check back every week or so until my 30 day period expires and see if it has been fixed :)

David Trey  staff
Replied on Feb 05, 2014 - 18:40 UTC


Good news - this has been implemented now in the latest update. The update will roll out probably later today or tomorrow :)

Best regards,

Klaus Thuesen  premium
Replied on Feb 05, 2014 - 20:52 UTC

That's good news indeed. I can't wait to try it out. In advance, many thanks for the quick fix of this small - but important - issue :)

PK  premium
Replied on Feb 05, 2014 - 23:43 UTC

I can confirm that this is already rolled-out and is working for me :-)

I can now do "inbox zero" with Mac Mail. I have an Applescript assigned to a hotkey that adds selected mails to my Todoist inbox via the API, with the title optionally set as the subject of the email.

My thanks to David & the devs.

Amir Salihefendic  staff in training
Replied on Feb 06, 2014 - 00:05 UTC

Hi guys

Could you share the Apple script? Maybe we could make a much better integration using our Mac app :-)

Best regards,

PK  premium
Replied on Feb 06, 2014 - 00:38 UTC

Hi Amir -

All the hard work was done by Nik Friedman TeBockhorst, who has a blog post on using the API from Applescript. I take no credit:


Unfortunately, this is not very user friendly - you have to put in the API key, install "JSON Helper for AppleScript", and remember to copy the script to ~/Library/Scripts/Mail. This is only sufficient to put the script on the Scripts menu - hotkey use requires an additional app. An alternative is to adapt the script to put it on the Services menu. OS X allows hotkeys to be assigned to Services without any additional apps (should be trivial but I have not tried it).

Unfortunately I do not develop on OS X… but someone who knows a *very* little bit about this should be able package these scripts up and make a convenient and friendly installer, or even make version with a much slicker interface.

All I have done to Nik's script is put in the message URL. The "on run" section is copied below although I am not sure it will survive the reformatting of the support form:

on run

tell application "Mail"
set _sel to get selection
set _links to {}
repeat with _msg in _sel
set _subj to "Follow-up email "
set _messageURL to "message://%3c" & _msg's message id & "%3e" & " (" & _msg's subject & ") "
set end of _links to _messageURL
end repeat
set AppleScript's text item delimiters to " "
--- set the clipboard to (_links as string)
set _itemlist to (_links as string)
end tell

set {text returned:textReturned, button returned:buttonReturned} to ¬
display dialog ¬
"Edit Todoist task for these messages…" with icon 1 buttons {"Cancel", "OK"} ¬
default button ¬
"OK" default answer _subj

if buttonReturned is "OK" then
--- set textReturnedMod to textReturned & " " & _messageURL
set textReturnedMod to textReturned & " " & _itemlist
my newTask(textReturnedMod)
else if buttonReturned is "Cancel" then


end if

end run
+remainder of Nik's script.

PK  premium
Replied on Feb 06, 2014 - 04:02 UTC

Of course, if you are driving Mail via Applescript directly, you can tell it to open an email with a given message ID. No need to use the URL. Much cleaner.

Klaus Thuesen  premium
Replied on Feb 06, 2014 - 07:08 UTC

PK, how do you get it to work?

If I add a new task like this:

test "email":(message://%3cXXXXXXXVXvpFV000051d0@XXXXXX%3e)

Then "email" becomes a link, I click on it and it takes me to http://message//%3cXXXXXXXVXvpFV000051d0@XXXXXX%3e - which does not work, same issue as before.

Thanks for the AppleScript though, I'll see if I can get it to work locally but I also know very little about AppleScript so I can't make an installer or anything like that. My current AppleScript is invoked via the built-in hotkeys to Mac, so I just hit CMD+D and it copies the mail link, so I can paste it elsewhere, but your AppleScript with API access sounds to much fancier and faster.

PK  premium
Replied on Feb 06, 2014 - 13:29 UTC

Klaus -

In your example you should use



message://%3cXXXXXXXVXvpFV000051d0@XXXXXX%3e (my email link)

Klaus Thuesen  premium
Replied on Feb 06, 2014 - 13:32 UTC

Ah, like that. Got it - and it works, thanks :)

Klaus Thuesen  premium
Replied on Feb 07, 2014 - 15:00 UTC

Using a hotkey goes like this:

Launch Automator and create a new "Service". Then add "Run AppleScript" and paste the entire script into it. In the top of Automator, select "Service receives selected (no input) in (Mail)". Save it, I saved mine as "Add to Todoist".

Then go into Mac System Preferences - Keyboard - Shortcuts - App Shortcuts. Add a new shortcut, select "Mail" as app, write "Add to Todoist" (or whatever you wrote when you saved the automator script, has to be 100% exact). Select a shortcut, I use CMD+D.

That's it. Whenever I have a mail marked in Mail, I tap CMD+D, it popups with "Edit Todoist task for these messages..." and I can hit OK.

Simon Smailus
Replied on Feb 21, 2014 - 20:25 UTC

any chance of adding Devonthink: x-devonthink-item://

Sergiy Zabigaylo  premium
Replied on Apr 11, 2014 - 12:55 UTC


I'm using lume96 lib to connect MS Outlook for Mac with Todoist. Script from Nik Friedman is works perfectly fine for me, except url lume96://lume96.outlookhelper?action=1!-109597 is not considered as a link (same problem like x-devonthink-item).

Is it possible to make any items in the format [url=lume96://lume96.outlookhelper?action=1!-109597]Re: Career path question[/url] clickable in todoist? Or at least add lume96 to make it clickable.

Any suggestions are appreciated as I'm starving without true link with Outlook, and my GTD system with 100-200 emails per day.

Paweł Josiek  premium
Replied on Jul 24, 2014 - 11:57 UTC

@Klaus, did you try to run use this script with Mail.app?

There are two different scripts — one is responsible for adding a new task (this one with API key) and the second one which you can use with Mail.app (it appends message url to the newTask). If I merge one script into another, it opens dialogue twice.

Moreover, URL looks like this:

when I try to use it in Todois, Mail.app says: Mail was unable to open the URL “message://%3cCAMhN39g9iCRqsddwjk8CMa-EgP9bkw=1”.

Any ideas?

Klaus Thuesen  premium
Replied on Jul 29, 2014 - 13:26 UTC

Yes I have used it some, but I did some modifications to the original script, so it's a bit different now. It's a while ago so unfortunately I don't remember which changes I did, or why.

But basically, this is the script/method that I'm using:

I do think however, that certain e-mails cannot be linked to. I seem to recall an issue that the script gave me some bad links, it might have been related to either the sender address or the subject line, containing a character that caused some confusion. I totally forgot if I managed to fix it or not, I just remember that I struggled with why sometimes I got a bad "mail link" and other times it worked fine.

Sorry for almost useless reply :)

Paweł Josiek  premium
Replied on Jul 29, 2014 - 13:35 UTC

>> I do think however, that certain e-mails cannot be linked to.

I have no idea why, but it started to work and certain e-mails are linked to new tasks now so I can simply click them and open e-mail. ;-)

I merged those two scripts and delete some unnecessary code. Now it looks like this http://wklej.org/id/1424324/ 'I have no idea what I'm doing' but it works. ;]

Thank you! :-)

Klaus Thuesen  premium
Replied on Jul 29, 2014 - 13:36 UTC

Great that you got it working. Thanks for sharing also.

Eduardo Inal
Replied on Aug 03, 2014 - 09:00 UTC

any plan to support x-postbox-message ?

wayne.olson  premium
Replied on Aug 14, 2014 - 20:15 UTC

This is a great script - very useful. Would love to see the body of the email get inserted into the notes section of the task that's created, and as a bonus the link to the email in the notes rather than in the subject. Dispatch recently added Todoist support and creates tasks this way.

The best option of course would be to see Todoist add direct support for this feature.

Manuel Kreutz  premium
Replied on Nov 07, 2014 - 16:45 UTC

+1 for support on "x-devonthink-item://" :)

Replied on Mar 11, 2015 - 11:54 UTC

It seems the Vote site is no longer in use.
Is there/Will there be any movement on the additional URLs ???

I'm just considering a move from Omnifocus and for linking into me my devonthink databases is essential.



Clyde Romo  staff
Replied on Mar 11, 2015 - 12:00 UTC

Hi Greg,

We are looking into improving URL scheme support in the future version of the Mac App but we not sure if links from Devonthink Databases will be supported.


Thomas  premium
Replied on May 20, 2015 - 08:16 UTC

+1 for x-devonthink-item

Martin Loetscher  premium
Replied on Aug 05, 2015 - 14:04 UTC

+1 for x-devonthink-item

Ben Ritcey  premium
Replied on Sep 04, 2015 - 16:16 UTC

I'll chime in that I just got this working with one caveat:

Paweł Josiek's applescript worked great, but I suspect the JSON Helper service has changed and takes care of url-escaping the content for you - I was getting things double-escaped, so my task of "this is a test" came through as "this%20is%20a%20test". just changing the urlEncode function in the applescript to pass through the text was a cheap and easy fix:

on urlEncode(decodedString)
end urlEncode

(removing all the references to urlEncode would be the correct way to do it, obviously).