VGtdApi - .Net library for Vitalist
Some months ago, I wrote that I was going to give up Vitalist and write a GTD application of my own. While that application is still being worked on (but moved to .Net, instead of PHP), I’ve become extremely attached to my Vitalist account. Yes, Vitalist is a little more expensive than other sites, but I haven’t found a UI half as good as Vitalist. It’s simple, it’s fast, and it closely matches the GTD methods. It’s great, and it’s worth the $5 a month I spend.
I thought it would be nice to be able to pull my data into other applications. So, I wrote up a quick and dirty .Net library for interfacing with the Vitalist API. If you pass it your Vitalist API key, it will pull down your data and fill collections of easy-to-use objects for your programming pleasure. Below are some quick examples of how it can be used.
Here is loading data:
VGtdApi.MyVitalist myVitalist = new VGtdApi.MyVitalist();
myVitalist.ApiKey = “[YOUR VITALIST API]”;
myVitalist.LoadData();
Here is adding an item:
VGtdApi.Item item = new VGtdApi.Item();
item.Body = “testapi”;
item.DueDate = System.DateTime.Now;
item.Priority = VGtdApi.Item.PriorityOption.High;
item.ListId = VGtdApi.Item.ListIdOption.Waiting;
myVitalist.Items.Add(item);
myVitalist.Save();
And here is making a change to an existing item:
myVitalist.Items[0].Body = “testapi 1234″;
myVitalist.Save();
I think this API could be a great head-start to anybody who wants to write a .Net application that uses Vitalist data.
HOWEVER
There’s a basic fact about this API that there is no getting around: An API for a service can only be as good as the service itself. And frankly, there are a lot of things that can’t be done with the Vitalist API. Here are my biggest problems right now:
1.) When you get your data, you have to download everything. Now, there is a filter that lets you break things apart by major sections (Inbox, Waiting, etc.), but that’s it. If you want to get what’s due today, you have to download every item in your account. Even completed items! I don’t think this is a very efficient way of pulling data, especially for people who have lots of Vitalist data. As you use the system more and more, each download is just going to get bigger and slower. I don’t know of another way around it, though.
2.) You can only see projects, contacts, and contexts that are attached to items. The XML format of the download is basically just a list of items, so if something is not attached to an item it won’t be included in the export.
3.) You are very limited in what you can add. I documented what limitations I found in the project. My memory may be off, but I think you can just create the name, due date, priority, context(s), and the type of item. That’s all. Projects and contacts can’t be touched.
4.) You are very limited in what you can update. Again, I documented what limitations I found in the project. The biggest limitation is the fact that the API won’t let you set a complete date. This means that you can see your items, but if you want to mark them as complete you have to log in to the website. That was a huge disappointment to find after a few hours of development.
According to the Vitalist API page, the Vitalist API is in its first version and is subject to change. If it does, the VGtdApi could stop working. And if Vitalist updates some of the missing features in their API, this API could suddenly work better than it does today without any code changes! I hope this project might be a small example of what Vitalist could offer.
You can download the VGtdApi project below. Anybody is free to use it, but I put an Attribution Assurance license on it. Have fun!
Tags: [vgtdapi, vitalist]