Other Productivity-Increasing Add-Ins?

T

trishacupra

Guest
Hi,

I've bought the Outlook Add-in and I'm loving it.

I'm wondering if there are any other add-ins for Outlook that work well with GTD?

Or any Outlook macros that you find very useful?

Thanks,

Trisha
 
M

Mikem42

Guest
Here's something for recurring tasks

I've been working with outlook's tasks for a while and found that I really hated their implementation of recurring tasks as they kept showing back up in my view of things. So, I wrote a script that allowed me to mark these as done, but have them return at the right time. This is mostly for tasks that need to be done more or less on a given day or every 3 days. Things like weekly status reports or watering my plants at home (every other day).

So, here's the first draft of the script. There's some ultra-limited documentation in the comments at the top:

Code:
Sub Relist_Done()
	    ' Mike Miller - [email]mikem@computer.org[/email]
	    ' Copyright Mike Miller 2005
	    ' http://3cats.us/
	    '
	    ' This is a macro for Microsoft Outlook 2003 that performs 2 basic functions
	    ' on tasks that have some extra text at the *end* of the subject line of the
	    ' form "[rate category1 category2]" (the two category values are optional,
	    ' but I think they provide a lot of functionality) and it performs the
	    ' following actions on these tasks:
	    '
	    ' 1. If the task is complete, then move the task to the category1 category and
	    '    set the due date to be the date marked complete + rate days and mark the
	    '    task as not started
	    ' 2. If the task is not complete, the due date is >= today, then move the
	    '    task to the category2 category to draw attention to it.
	    '
	    ' The usage model is that I had some small tasks that I needed to do on a
	    ' highly regular basis, and basically wanted them to "recur" but outlook's
	    ' recur mechanism leaves the item visible at all times, which is bad. For
	    ' example, I want to water my plants every other day, so I have:
	    '    Water plants [2 Tickler, Home]
	    ' So that when mark it done, it drops off the list, and goes into the tickler
	    ' category until 2 days elapse and then it pops up in the home category
	    ' again to remind me to water my plants.
	    '
	    ' Eventually, I'd like to have more complicated expressions for "rate" like
	    ' "MWF" or "2Sun" to get the recurrence to happen on particular days or the
	    ' 2nd Sunday from now. Unfortunately, without regular expression support in
	    ' VBA, parsing such items will be tricky, and for the first pass, I can live
	    ' with just having #of days.
	    '
	    Dim myolApp As Outlook.Application
	    Dim myNamespace As Outlook.NameSpace
	    Dim myFolderTasks As Outlook.MAPIFolder
	    Dim myItems As Outlook.Items
	    Dim myItem As TaskItem
	    Dim myString As String
	    Dim myStringArray() As String
	    Dim myRecur As String
	    Dim myHiddenCategory As String
	    Dim myActiveCategory As String

Set myolApp = CreateObject("Outlook.Application")
	    Set myNamespace = myolApp.GetNamespace("MAPI")
	    Set myolApp.ActiveExplorer.CurrentFolder = myNamespace.GetDefaultFolder(olFolderTasks)
	    Set myFolderTasks = myolApp.ActiveExplorer.CurrentFolder

For Each myItem In myFolderTasks.Items
	        ' We check for subject = "" as protection against mid() on zero-length strings
	        If (myItem.Subject = "") Then
	            GoTo Relist_Skip_Item
	        End If

'See if this task has [] in it
	        myString = Mid(myItem.Subject, Len(myItem.Subject), 1)
	        myStringArray = Split(myItem.Subject, "[")
	        If ((myString <> "]") Or (UBound(myStringArray) <> 1)) Then
	            GoTo Relist_Skip_Item
	        End If

' OK, this task appears to have stuff we are interested in, process
	        ' what is between the [] and assign internal variables to the values
	        ' for readability. Note that the 2 category options are optional.
	        myStringArray = Split(myStringArray(1), " ")
	        myRecur = myStringArray(0)
	        If (UBound(myStringArray) > 0) Then
	            myHiddenCategory = myStringArray(1)
	        Else
	            myHiddenCategory = ""
	        End If
	        If (UBound(myStringArray) > 1) Then
	            myActiveCategory = Mid(myStringArray(2), 1, (Len(myStringArray(2)) - 1))
	        Else
	            myActiveCategory = ""
	        End If

If (myItem.Status = olTaskComplete) Then
	            ' Here is were we reclaim a completed task and stash it off in the hidden
	            ' tickler or waiting category so we don't have to look at it.
	            myItem.DueDate = myItem.DateCompleted + Int(myRecur)
	            myItem.Status = olTaskNotStarted
	            If (myHiddenCategory <> "") Then
	                myItem.Categories = myHiddenCategory
	            End If
	            myItem.Save
	        Else
	            ' If the user provided us with an active category and the due date is
	            ' today, then "promote" the task to the active category so it gets the
	            ' right visiblity
	            If (myActiveCategory <> "") Then
	                MsgBox "comparing " & myItem.DueDate & " with " & Date
	                If (myItem.DueDate <= Date) Then
	                    myItem.Categories = myActiveCategory
	                    myItem.Save
	                End If
	            End If
	        End If
	    ' yes, I know gotos are evil, but I don't know of the break functionality
	    ' so I'm not nested so deep I can't make heads or tails of where I am...
	Relist_Skip_Item:
	    Next
	End Sub

I'd be interested in feedback on my script or suggestions on how to make it better.

There are a few out on the web as well. This guy has a couple of basic ones that are interesting starting points:
http://michaelhyatt.blogs.com/workingsmart/getting_things_done/index.html

- Mike
 
M

Mikem42

Guest
Minor update

Probably want to remove this line
Code:
MsgBox "comparing " & myItem.DueDate & " with " & Date
It was in there for debugging reasons. I've got a text copy over on my website http://3cats.us/outlook_macros.txt

- Mike
 
J

jazzsyx

Guest
Yippee!

I'm so tired of seeing "Time sheets" on my daily task list! :) Tried to work on a filter to hide them, but couldn't quite figure it out. The hiding worked, but couldn't get them to display on the date due. This sounds like just the ticket!

I do need them on the 15th & 30/31st, so I'll see if I can play around with that bit.

Thanks!
Jessica
 

ivan308

Registered
ANy directions how to apply script to Outlook

This does look useful. Can you point me to some directions how to apply the script/macro in Outlook
 
M

Mikem42

Guest
To add the macro...

To add a macro to Outlook, go to Tools -> Macro -> Macros which brings up a little dialogue box. Type macroname in the "Macro Name" field and then click on the "Create" button. This should bring up the Visual Basic Editor with
Code:
Sub macroname()

End Sub
Then replace that text with the text at http://3cats.us/outlook_macros.txt

That should do it for you. You can now run the macro by going to Tools -> Macro -> Macros (or alt-F8). Let me know if that doesn't work for you

- Mike
 
M

Mikem42

Guest
Minor update

I've added some more comments and also made it pop up a message box showing which tasks it has changed. I found this to be particularly useful for "Promoted" items so that they get called to my attention.

http://3cats.us/outlook_macros.txt

- Mike
 
Top