Michael Koehler

Exploring the intersection of productivity, technology, and life.

Archive for the ‘Nozbe’ Category


leave a comment »



So far this has all been a long introduction to what I am about to announce.  I wanted to explain where I had come from and where I was trying to go.  Having selected Nozbe as my trusted system, I settled in and decided to stay, but I wanted features that I did not expect Nozbe to produce any time soon.  So, I decided to create those features myself.

With the api documentation in hand, I started to write a program that would speak to Nozbe’s system in its language.  As I started to make the various parts work I realized that what I needed was a class library that the real program could call.  All the Nozbe related details would be in this class library, and the program would just handle doing what it needed to do without worrying about the details.  With that in mind I created Nozbe.Net.

Nozbe.Net is a class library callable from any Microsoft .Net based language.  It is designed as a thin wrapper around the Nozbe web service api, translating those calls into .Net methods, and the data into .Net collections.  In addition, I have begun adding functions to do things like save the data into a local backup.

At this time, Nozbe.Net is read-only, meaning that I have not finished the design of how updates can be made.  That is the next step, but as I started to write that code, I realized that I needed to shift back to writing the program I had started.  The original project was to write a Windows program that would give me the features I wished Nozbe had.  I need to finish writing that program so that I can decide how best to support synchronizing updates with Nozbe.  Once I have that done, I will post an updated version of Nozbe.Net.

In the meantime, there is a lot that can be done with the library as is, especially if you are comfortable with Powershell.  Here are some examples to get us started.

Step one is to access Nozbe.Net:

add-type -path “.\Nozbe.Net.dll”

Step two is to login to Nozbe.  We have two options:

$session = new-object Nozbe.Net.Session “myappkey”, “myuserkey”


$session = new-object Nozbe.Net.Session “myappkey”

$session.Login(“email”, “password”)

Notice that you will need an app key.  This is something that you have to ask Nozbe for.  See the Nozbe api page for details.

Step 3, get all the Nozbe data (except completed projects and tasks)

$data = $session.GetData()

or to get everything including completed items:

$data = $session.GetData(“”, $true)

The “” means all types of information (for example, you could say “project” to just get projects).  The $true means completed items should be included.

Create a local backup


Find Projects without a Tag

$data.project | where-object {$_.tag -eq “”}

Find Projects with no Actions

$data.project | foreach-object {$project = $_; $tasks = ($data.task | where-object {$_.project_hash -eq $project.hash}); if ($tasks.count -eq 0) {$project}}

List Project names with number of tasks

$data.project | % {$project = $_; $tasks = ($data.task | where-object {$_.project_hash -eq $p.hash}); “” | select @{Name=”Project”; Expression={$project.name}},@{Name=”Tasks”; Expression={$tasks.Count}}}

Now I know that if computer programming is not your thing, this is a foreign language to you and not apparently helpful.  The good news is that when I have the full program finished, I will be releasing that as well and you will not need an app key, and you will not have to learn to program.  For all those of you that understand Powershell, or C# or VB.Net, please try Nozbe.Net and let me know what you think.  I have published it as open source in order to encourage others to contribute.

Let me know what you think.


Written by mwkoehler

2011/04/07 at 7:09 pm

Posted in GTD, Nozbe, Powershell

Into the Cloud

with one comment


Photo courtesy of Aztlek @ Flickr.com

As I described in my last post, finding a trusted system that worked for me took a long time.  I started out using software I already had and knew, but found that I needed something that was less of a “make it work”, and more of a designed system.  I wanted the system to understand that it was working with projects, next actions, and support information, and leverage that knowledge to provide a more intuitive and friction free experience.

So I went looking.  This time I seriously looked at everything available.  This is saying something as a lot of software claims to support GTD these days.  I had heard of many of them as the years passed, and I went looking to see what they had become.  What I found was a lot of systems that were half finished, many that only claimed to be based on GTD, and a few that had apparently died.  After clearing those away I was left with three options: 1) buy a Mac and install OmniFocus, 2) install a personal Lotus Notes system and use eProductivity or 3) use a web based system.

OmniFocus was tempting, but the idea of buying a Mac just to run an application I had not myself used based solely on the enthusiastic reviews of others did not strike me as the best option.  If I had already owned a Mac, I probably would have tried it, but I support Windows systems for a living.  eProductivity looked fantastic, but running Lotus Notes to support it seemed a lot of effort.  I was trying to get things done, not increase the work load.

So, only the web was left.  There are so many choices, that it took awhile to decide.  I’m not going to list all the sites I tried.  A lot of it came down to personal choice, although I found many of the sites I tried were not really GTD systems.  I decided to try Nozbe.  Reassured by their money back guarantee, I signed up and began moving from OneNote to Nozbe.  This turned out to be a great way to test how well it handled entering new stuff, and I was reassured how quickly I was able to do it.

Once I had most of my current information entered into Nozbe, I started to use it for real.  Very early on, the ability to email new tasks into my Nozbe Inbox, and the ability to then rapidly process those items became critical to my collection process.  This is exactly what I meant when I said I was looking for a more friction free experience.  I was not as happy with the mobile version of the web site, but it was at least an up to date view of next actions by context which is what I most wanted in a mobile app.  The introduction of the iPad app (I have an iPad but not an iPhone) took the mobile experience to the next level.  When I realized that I was doing regular weekly reviews I knew that Nozbe was working.

But as with any system, all was not perfect.  While Nozbe did everything I needed it to do, there were things that irked me.  A simple example was tagging projects as work related or personal.  This was essential for me and worked well, but as my project list grew longer and longer I found it impossible to verify that all projects were correctly tagged.  So, if I filtered on personal projects, I could not be sure I was seeing all my projects.   Making a complete backup was another limitation.  While Nozbe allowed me to make a backup of my data, it did not include everything.  For example, the backup did not include the tags assigned to my projects.  I learned this when I tried to workaround the first issue by looking in the backup file.  I began a project in wish I started to list the things I really wished Nozbe would do, and I began spending more time in the Nozbe forum.

As I read the posts on the forum, I realized that Nozbe was too small to do everything that everyone wanted.  Even if it could, they were going to have to say no to a lot of feature requests if Nozbe was to remain a usable system.  I suspected that some of the things on my wish list would be supported one day, but I could not be sure when.  The rest of my wish list would be a long time coming if ever.  Since I started my career in computer software development my first thought was to try to create some of these features myself.  I had seen something about Nozbe supporting a web service and thought that I might be able to do something with that.  After reviewing the published api, it was clear that it would not help me.  It was too limited in what it could do.  I tried a few other things like pulling information straight from the web site pages, but I soon shelved the whole idea.

Then, Michael Sliwinski announced an update to the web service api.  I had been wondering how Macoscope was able to sync their iPad/iPhone apps with the Nozbe server.  Once I got a copy of the new api, I knew.  It now supported doing everything you could imagine.  I was overwhelmed with ideas, and I soon got started.

Written by mwkoehler

2011/04/03 at 7:11 pm

Posted in GTD, Nozbe

%d bloggers like this: