Creating an Outlook Appointment based on an Email Message

I've always wanted to do this:  I get an email message and I want to create an appointment from the the message.  It's a simple task and I found that this was one of the goals of Chandler in the book that I'm reading right now, Dreaming in Code by Scott Rosenberg.  Incidentally, I just met Scott at Scoble's Geek/Blogger dinner in San Francisco last week.  From the book, I learned that the software architecture that the Chandler team was using to accomplish this task was very complex.  I looked into the Outlook 2007 UI I did not find this feature.  Last week I visited a customer and the engineering manager there asked how to do this.  The beauty of Outlook is that it is programmable!  In about an hour, I was able to write a short VBA Macro that does the following:

  1. If the current item is an email, create a new appointment item
  2. Copy the categories, body, and subject
  3. Copy the attachments
  4. Add the sender as a meeting participant
  5. Add each email recipient as a meeting participant
  6.      Each To: participant will be a required
  7.      Each CC: or BCC: participant will be optional

I then added the macro to my quick launch bar for an Outlook message and it worked!

I have attached the macro for all of you to try out.

Enjoy,

Michael

5/24/2007: Updated macro to fix bug with copying attachments.

NewMeetingRequestFromEmail.bas