Task Management in Windows Phone Mango

At least one* of the 500 new features in Windows Phone Mango is the addition of the to-do items in the Calendar app.

The fact Exchange Tasks was not supported in Windows Phone 7 was a very sore point for a lot of users. Some even going as far as to say that the platform was not suitable for business at all until this was rectified.

It’s understandable for users to be upset. Task support has been in the Windows Mobile platform since forever, and users have come to expect it to be there. Currently the best solution is to buy a task application like the one by APPA Mundi which I use (and seems to be the best of the bunch) – but paying for something that many feel should be baked into the operating system leaves a bitter taste in the mouth.

The to-do list is included as part of the Calendar application in Windows Phone Mango – not a separate application. There is no support for folders or categories – which is somewhat annoying – and all tasks from each account is just shown in one list. But the synchronisation of the tasks is much more robust than is available in third party applications, and includes the handy features of being able to see tasks with a due date on the calendar (though  this doesn’t seem to show up on the tile) and the ability to have reminders pop up just like an alarm or calendar appointment.

As a ‘power user’ of tasks in Outlook, I’d much rather the this as a separate application in future versions of Windows Phone. I’d also like to see the ability to use organise tasks with folders and categories, and to be able to pin each of these to the start screen in a similar way to OneNote’s impressive implementation of tiles.

Until then, I’m probably going to end up using some combination of APPA Mundi tasks and the built in support.

* I’m unsure how they count a ‘feature’

Outlook Tasks in PowerShell and Vim

Getting Outlook Tasks in PowerShell is actually pretty easy. All you need to do is use the Office Interop to get access to the default tasks folder, then iterate through the items that are returned.

Create a file called Get-OutlookTask.ps1 in your scripts folder, and paste the following code:

Add-Type -AssemblyName Microsoft.Office.Interop.Outlook
$folders = "Microsoft.Office.Interop.Outlook.OlDefaultFolders" -as [type]
$outlook = New-Object -ComObject outlook.application
$mapi = $outlook.GetNameSpace("mapi")
$tasks = $mapi.getDefaultFolder($folders::olFolderTasks)

foreach($task in $tasks.Items)

Naturally, you could customize this script to work any way you like – for example, you could sort by priorty or date, or you could show an extra column for category information. I have actually set up an alias to this script, so all I have to do is type tasks to see all my current tasks.

If you have set Vim to work with PowerShell, you can import your Outlook Tasks directly into the open document by using the Vim command:

:r! tasks

Pretty cool huh? If you’re looking to add Outlook Tasks in a similar way, you can check out this script by Lee Holmes. I use this one with the alias of nt to save on all that extra typing.

If you want to be able to add Outlook Tasks from Vim, I suggest you add the following function to your vimrc file:

function! Task(args)
  system("nt \\\"" . a:args . "\\\"")

command! -nargs=1 Task :call Task('')

Now you just need to call :Task buy milk and it’ll get added – without switching to the shell itself.