Can my secretary be notified when an appointment has been added to my Outlook calendar?

My office runs Microsoft Exchange and Outlook.  

Several staff members have been granted permission to add items to my Outlook calendar.  Is there a way that my secretary can be notified (for example via email), when a staff member has added an item to my calendar?

Thinking ahead, could my secretary also be notified when a staff member has updated or deleted an item in my Outlook calendar?

Thank you for your help.
eemmpphAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

omgangIT ManagerCommented:
If you make your secretary a delegate for your mailbox he/she can be notified when you receive invites to your calendar.  You can read up on delegate access here https://support.office.com/en-us/article/Manage-another-persons-mail-and-calendar-items-8b08bcd3-4fe7-45e7-9ccd-76e1877049c1

In Outlook 2010 go to the File menu, click the Account Settings button and choose Delegate Access
OM Gang
eemmpphAuthor Commented:
I understand the process regarding "invites".  Staff members do not send invites.  They simply add calendar items to my calendar.
omgangIT ManagerCommented:
Right.  Sorry I missed that.  How are you with VBA coding?
OM Gang
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

omgangIT ManagerCommented:
See this Q (still  in progress).  http://www.experts-exchange.com/Software/Office_Productivity/Groupware/Outlook/Q_28682195.html

The asker wishes to monitor his/her Inbox, analyze messages when the arrive for specific content, and perform some action when criteria is met.  This is very similar to what you want to accomplish:
1) monitor your Outlook Calendar for changes
2) Perform some action (send an email to your secretary) when changes occur

Does this seem like what you're looking for?  I can provide an example of how to change my procedures (from the linked Q) so that the Calendar is monitored and an email is sent when changes occur.

OM Gang
eemmpphAuthor Commented:
I don't know what to set this to:

'Set olkFolder = OpenOutlookFolder("SomeAttachedMailbox\Inbox").Items

Change the folder path to that of the folder you want to monitor - specify display name as seen in navigation pane

Does it want my username or my primary email address name?
omgangIT ManagerCommented:
OK, first we need to change a declaration

Dim WithEvents olkFolder As Outlook.Items
Dim WithEvents olkCalendar As Outlook.Items  '<--- you need to add this one or replace the one above with this one

Second, let's change what happens when you quit Outlook

Private Sub Application_Quit()
On Error GoTo Err_Application_Quit

    Set olkFolder = Nothing
    Set olkCalendar = Nothing   '<---- need to include this one or replace the one above

Exit_Application_Quit:
    Exit Sub

Err_Application_Quit:
    MsgBox Err.Number & " (" & Err.Description & ") in procedure Application_Quit of VBA Document ThisOutlookSession"
    Resume Exit_Application_Quit

End Sub


Third, as to your question, use this instead
    Set olkCalendar = Session.GetDefaultFolder(olFolderCalendar).Items



We still need to make a couple of other changes.  The sample procedure from the other Q handles when an item is added but we also need to deal with an item being changed.  I'll work up the sample code for you and post back in the morning.
OM Gang
omgangIT ManagerCommented:
I've been doing some testing and am seeing some interesting behavior.  The procedures to monitor for additions and changes to your calendar are below.

Here's what's interesting:  I added a test Calendar appointment and the procedure printed to the Immediate window as expected.  Then I changed/modified the appointment and the ItemChange procedure fired multiple times.

Calendar Item added.  Subject = Testing #5    <---- ItemAdd procedure
Calendar Item modified.  Subject = Testing #5     <--- ItemChange procedure; seems to have captured the Subject prior to the change
Calendar Item modified.  Subject = Testing #5x    <--- ItemChange; captures the modified Subject
Calendar Item modified.  Subject = Testing #5x    <--- ItemChange
Calendar Item modified.  Subject = Testing #5x


Private Sub olkCalendar_ItemAdd(ByVal Item As Object)
On Error GoTo Err_olkCalendar_ItemAdd
    
    Debug.Print "Calendar Item added.  Subject = " & Item.Subject

Exit_olkCalendar_ItemAdd:
    Exit Sub

Err_olkCalendar_ItemAdd:
    MsgBox Err.Number & " (" & Err.Description & ") in procedure olkCalendar_ItemAdd of VBA Document ThisOutlookSession"
    Resume Exit_olkCalendar_ItemAdd

End Sub


Private Sub olkCalendar_ItemChange(ByVal Item As Object)

On Error GoTo Err_olkCalendar_ItemChange

    Debug.Print "Calendar Item modified.  Subject = " & Item.Subject


Exit_olkCalendar_ItemChange:
   Exit Sub

Err_olkCalendar_ItemChange:
   MsgBox Err.Number & " (" & Err.Description & ") in procedure olkCalendar_ItemChange of VBA Document ThisOutlookSession"
   Resume Exit_olkCalendar_ItemChange
   
End Sub

Open in new window

omgangIT ManagerCommented:
Also, there is an ItemRemove method but it, unfortunately, does not reference the Item that was removed; it fires when the Items collection of the folder is modified by having an Item removed.  We can use this to let you know a Calendar Item was removed but we can't use it to tell you which Calendar Item it was.  What's really silly is that this MSDN article ( https://msdn.microsoft.com/EN-US/library/office/ff868911(v=office.14).aspx ) describes using the method specifically to send an email alert when an Item (a Contact Item) is deleted BUT the example isn't able to specify the Item (just says "Remove the following contact from your list:" --- but doesn't indicate which Contact).  There is an Item.BeforeDelete method that may be able to accomplish the task but will require some addition coding to implement.  I'm investigating it now.
OM Gang
omgangIT ManagerCommented:
One more thing, the MSDN link in my prior post included simple sample code for drafting an email message in response to an event.  Use that to construct an email message to be sent to your secretary.  Change the
myOlMItem.Display
to
myOlMItem.Send
to send the message instead of displaying the draft.
omgangIT ManagerCommented:
OK - after further testing the ItemChange event fires not only when an existing item is changed but also when a new item is added.  This poses a bit of a problem as you'll probably want to distinguish between a new Calendar appointment and a modified Calendar appointment.....or you can spam your secretary, i.e. utilize both ItemAdd and ItemChange events knowing the secretary will receive multiple email messages when a new Item is added.


Private Sub olkCalendar_ItemChange(ByVal Item As Object)
On Error GoTo Err_olkCalendar_ItemChange

    Dim olMsgItem As Outlook.MailItem
    
    Set olMsgItem = Application.CreateItem(olMailItem)
    olMsgItem.To = "OMGang@ee.com"
    olMsgItem.Subject = "Calendar Item Added/Modified"
    olMsgItem.Body = "New Calendar Item:" & vbCrLf _
        & "Start = " & Item.Start & vbCrLf _
        & "End = " & Item.End & vbCrLf _
        & "Subject = " & Item.Subject
    olMsgItem.Send

    'Debug.Print "Calendar Item modified.  Subject = " & Item.Subject


Exit_olkCalendar_ItemChange:
    Set olMsgItem = Nothing
   Exit Sub

Err_olkCalendar_ItemChange:
   MsgBox Err.Number & " (" & Err.Description & ") in procedure olkCalendar_ItemChange of VBA Document ThisOutlookSession"
   Resume Exit_olkCalendar_ItemChange
   
End Sub

Open in new window

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
eemmpphAuthor Commented:
Excellent!  Thank you!
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Outlook

From novice to tech pro — start learning today.