In my last article I talked about a Java based tool which I put together that lets Agile teams estimate their available hours by interacting with an MS Exchange server to get calendar details. From a practical standpoint it was a bit inconvenient since you have to supply username and password credentials and you get a CLI response back.
I decided to take things one step further and create a C# version that integrates direclty into Outlook. Now I can find out my agility with a few quick clicks.
- C# Outlook how to access the calendar options [http://social.msdn.microsoft.com]
- How to: Search and Obtain Appointments in a Time Range [msdn.microsoft.com]
- _Items.Sort method [msdn.microsoft.com]
This Add-In was tested and works against Outlook 2010
It may be compatible with other versions, but they were NOT tested
How it Works
I use the Microsoft.Office.Interop.Outlook namespsace to hook into MS Outlook and obtain the necessary calendar information to perform availability calculations
This work is subject to this BSD style license:
Copyright (c) 2014, Rion Carter
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
How to Install
Installation is pretty simple: Just run setup.exe
To uninstall, go to add/remove programs, select the AvailableAgility entry from the list and click the Uninstall button.
After installation has completed, you'll need to setup a few things:
- Configure the Outlook Calendar settings by Right-Clicking on the Calendar and selecting Calendar Options... You will be presented with a screen that looks like this. Please fill it out:
- Configure the Agile Add-in by Clicking on Add-ins -> Agile Availability Calculator ->Settings like this:
- You'll be greeted with this screen (or one like it) to alter the tool settings:
Description of the Agile Availability Configuration Options
Days in Range: This setting lets you control how many days in advance the tool should look ahead. For best results, be sure to select in increments of 7 (like 7, 14, 21, 28, etc...)
Lunch Settings: If you don't want lunch to count as 'work hours', make sure this is set correctly. It defaults to a One Hour lunch between 12pm and 1pm
Include Fragments: By default the tool does NOT treat tiny amounts of free space between meetings as usable time (since the chunks are so small as to be worthless). If you check this option, the tool will treat ALL space between meetings as FREE time where you can work
Min Usable Time: If we are ignoring fragments of free time (default behavior), we need to know how much time is the minimum amount of contiguous time to be useful. This setting is in Minutes and any free-space block that is smaller than this will not be considered free time.
How to Use
After configuring things to your liking, simply click on Add-Ins -> Agile Availability Calculator -> Calculate Availability
This will popup a dialog box which shows you your available free time for the time range you configured in the settings:
This is meant to be a fairly straight-forward tool right now. If there is any demand I'll see about changing things. :)
Here's what the result options mean:
Total Days in Range indicates how many days ahead you want to look
Work Days in Range indicates how many of those days are work days (defaults Mon->Fri)
Total Meetings Scheduled shows how many meetings you have upcoming in the next 2 week period
Total Days of Scheduled Time shows how much time (in days of your life) that are being taken up in the next time period for meetings or other activities.
Outlook 2010: This download contains both the Visual Studio 2010 solution along with the setup.exe. Enjoy!
The setup.exe is found under the Publish folder.