How to Detect Move or Resize of Outlook Calendar Item Using Drag and Drop

Add-in Express™ Support Service
That's what is more important than anything else

How to Detect Move or Resize of Outlook Calendar Item Using Drag and Drop
 
Joe Acunzo




Posts: 13
Joined: 2012-01-03
I need to detect when a calendar item in Outlook changes using drag and drop to either move the item or resize it to change the duration. Using the Outlook Event Logger Add-In, I only see these events when dragging and dropping a calendar item:


ADXOutlookAppEvents.ExplorerBeforeItemPaste
ADXOutlookItemsEvents.BeforeItemMove.  AppointmentItem with subject 'TEST Drag and Drop'.  Folder: Calendar. Destination Folder: 'Calendar'. 
ADXOutlookAppEvents.ExplorerSelectionChange. Current Folder name is 'Calendar', Explorer caption is 'Calendar - Default - Microsoft Outlook'
ADXOutlookAppEvents.ReminderChange


I don't see what event I can use. Why is there no ItemChange event? I'm using Outlook 2010 with all of the latest updates, but I must support Outlook 2003 through Outlook 2019 with my add-in.
Posted 25 Feb, 2019 15:16:51 Top
Andrei Smolin


Add-in Express team


Posts: 18821
Joined: 2006-05-11
Hello Joe,


= 1:11:27 PM = ADXOutlookAppEvents.ExplorerSelectionChange. Current Folder name is 'Calendar', Explorer caption is '...'
= 1:11:27 PM = ADXOutlookAppEvents.ItemLoad.
= 1:11:27 PM = ADXOutlookItemEvents.Read. AppointmentItem with subject 'test'.
= 1:11:29 PM = ADXOutlookAppEvents.ExplorerBeforeItemPaste
= 1:11:29 PM = ADXOutlookItemsEvents.BeforeItemMove. AppointmentItem with subject 'test'. Folder: Calendar. Destination Folder: 'Calendar'.
= 1:11:29 PM = ADXOutlookItemEvents.PropertyChange. Property name is StartInStartTimeZone
= 1:11:29 PM = ADXOutlookItemEvents.PropertyChange. Property name is StartUTC
= 1:11:29 PM = ADXOutlookItemEvents.PropertyChange. Property name is End
= 1:11:29 PM = ADXOutlookItemEvents.PropertyChange. Property name is EndInEndTimeZone
= 1:11:29 PM = ADXOutlookItemEvents.PropertyChange. Property name is EndUTC
= 1:11:29 PM = ADXOutlookItemEvents.PropertyChange. Property name is Start
= 1:11:29 PM = ADXOutlookItemEvents.PropertyChange. Property name is EndInEndTimeZone
= 1:11:29 PM = ADXOutlookItemEvents.PropertyChange. Property name is EndUTC
= 1:11:29 PM = ADXOutlookItemEvents.PropertyChange. Property name is Duration
= 1:11:29 PM = ADXOutlookItemEvents.PropertyChange. Property name is End
= 1:11:29 PM = ADXOutlookItemEvents.Write. AppointmentItem with subject 'test'.
= 1:11:29 PM = ADXOutlookItemEvents.BeforeCheckNames
= 1:11:29 PM = ADXOutlookItemEvents.AfterWrite.
= 1:11:30 PM = ADXOutlookAppEvents.ExplorerSelectionChange. Current Folder name is 'Calendar', Explorer caption is '...'
= 1:11:30 PM = ADXOutlookAppEvents.ReminderChange
= 1:11:30 PM = ADXOutlookAppEvents.ExplorerSelectionChange. Current Folder name is 'Calendar', Explorer caption is '...'
= 1:11:31 PM = ADXOutlookAppEvents.ReminderChange
= 1:11:32 PM = ADXOutlookItemsEvents.ItemChange AppointmentItem with subject 'test'. Parent Folder name is Calendar.
= 1:11:32 PM = ADXOutlookAppEvents.ExplorerSelectionChange. Current Folder name is 'Calendar', Explorer caption is '...'
= 1:11:33 PM = ADXOutlookItemsEvents.ItemChange AppointmentItem with subject 'test'. Parent Folder name is Calendar.
= 1:11:33 PM = ADXOutlookAppEvents.ExplorerSelectionChange. Current Folder name is 'Calendar', Explorer caption is '...'


This is what the Logger reports when I move an appointment to another date in my Outlook 2016.


Andrei Smolin
Add-in Express Team Leader
Posted 26 Feb, 2019 05:14:21 Top
Joe Acunzo




Posts: 13
Joined: 2012-01-03
Thanks Andrei.

Through more experimentation using my own add-in, I've discovered my problem. To know when an item has changed in place, such as a dragging and dropping on the calendar or editing a Contact in place, I handle adxOutlookEvents.ExplorerSelectionChange, and when fired, ConnectTo the item selected (if any selected). I have discovered that the problem is that when you drag and drop an item on the calendar, it is never actually selected. That is, you can move a calendar entry without it ever being selected. ItemChange does fire after the drag and drop, so I will use that instead of ProcessWrite, though will require some reworking of my code as I rely on ProcessWrite for other reasons.
Posted 26 Feb, 2019 11:25:07 Top
Andrei Smolin


Add-in Express team


Posts: 18821
Joined: 2006-05-11
Hello Joe,

Thank you very much for sharing your results with forum readers!


Andrei Smolin
Add-in Express Team Leader
Posted 27 Feb, 2019 01:59:46 Top