1

Okay, at my work, our procedures/guidelines require us to send emails letting other employees know if we are leaving our desk for extended periods of time. It's an empty email body (apart from our signature), and the subject says IN, OUT, or 10.

I've gotten into the habit of simply deleting these emails as they come, to reduce clutter. But it's difficult to keep track of who is in or out. So I would like to write an add-in that will show who is in or out based on these emails. My idea at the moment, is to create labels in the toolbar with each employee's name, and whether they are in or out.

Can anybody suggest a good way to go about doing this?

HrVanker
  • 11
  • 1
  • You realize there are protocols for things like this, such as **[XMPP](http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol)** and **[SIP](http://en.wikipedia.org/wiki/Session_Initiation_Protocol)**? Why would you try to use email for *presence awareness*? Just leverage a **[jabber network](http://www.jabber.org/)**. – SliverNinja - MSFT May 22 '12 at 12:57
  • Because we are a small company with 5 people that does not have an IT dept. The owner takes care of that stuff, but he's not really a computer guy... That much does sucks. As far as using the calendar, again we are small and our boss isn't really a tech guy. Also, my goal for this (as everything I do with a computer) is efficiency. If I can just alt-tab to Outlook, and glance at the toolbar, no need for extra mouse clicks. – HrVanker May 24 '12 at 11:17
  • Btw, posted from my phone... I apologize for the poor grammar and formatting. – HrVanker May 24 '12 at 11:28

2 Answers2

1

You could create an addin for this (using VB6, or VSTO), or use some VBA to process incoming emails and create calendar appointments to block out the time those folks are AFK.

Something like:

Private WithEvents Items As Outlook.Items 
Private Sub Application_Startup() 
Dim olApp As Outlook.Application 
Dim objNS As Outlook.NameSpace 
Set olApp = Outlook.Application 
Set objNS = olApp.GetNamespace("MAPI") 
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items 
End Sub

Private Sub Items_ItemAdd(ByVal item As Object) 
On Error Goto ErrorHandler 
Dim Msg As Outlook.MailItem 

If TypeName(item) = "MailItem" Then
Set Msg = item 
  If Msg.Subject = "OUT" Then
    ' create calendar appointment here
  End If
  If Msg.Subject = "IN" Then
    ' delete calendar appoinment here
  End If
End If
ProgramExit: 
Exit Sub
ErrorHandler: 
MsgBox Err.Number & " - " & Err.Description 
Resume ProgramExit 
End Sub

I recommend an alternative: use the Out of Office feature. I realize the subject line will say "Out Of Office" even if you are only using the bathroom or at a meeting, but I can't imagine it's worse than what you are doing now. It's built-in and doesn't require so much effort.

ps- This is none of my business and I'll probably get flamed for asking this, but could you tell us what company that is, so I know never to work there? It sounds absolutely horrible.

JimmyPena
  • 8,694
  • 6
  • 43
  • 64
0

You should signup for the MS BizSpark and download Lync Server/Communicator. It has built-in presence awareness - something you are better off investing your efforts into than this strange Outlook VBA/email setup.

As an alternative, you can also get jabber clients free if you want to go the jabber route. jabber.org offers free accounts if you don't want to host your own jabber server.

Both these approaches are a standards-based way of knowing peoples availability (presence) without having to rely on them to perform any manual actions.

SliverNinja - MSFT
  • 31,051
  • 11
  • 110
  • 173
  • Again, convincing my boss to use anything other than we already do is out of the question. Not only is he not a tech person, but we deal with legal documents, so security is a huge concern for him. We don't have an IT dept to look after those things, so he prefers to play it safe. Thanks for the suggestion though. – HrVanker May 24 '12 at 17:57