visler Posted November 2, 2016 Posted November 2, 2016 Hi all I been using autoit some years ago and needed a tool for changing various in outlook so i found autoit again and i allready succeed in some of this, but i cant find and delete an appointment. I have found this example and the creation is ok (after i changed $oOL/$oOutlook typo) Https://www.autoitscript.com/wiki/OutlookEX_UDF_-_Meeting_Item But i cant get the delete part to work and i keep on getting "not found" and an empty array (screen shoot of _ArrayDisplay attached) Please can someone tell me what i am missing, i have been searching and trying various but stil i have no luck in finding any items. I am using outloook 2013 and office365. I have been able to send mails and create appointment, so i guess my problem is not due to the use off office365.
water Posted November 2, 2016 Posted November 2, 2016 I fixed the typos in the wiki. Can you please post the code you use to create and delete the appointment? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
visler Posted November 2, 2016 Author Posted November 2, 2016 (edited) I have tried various thing, but using the examples creates a meeting ok, but the deleting example does not work for me "#include <OutlookEx.au3> ; Open the connection to Outlook Global $oOL = _OL_Open() ; Get the appointment you want to cancel $aResult = _OL_ItemFind($oOL, "*\Calendar", "", "[Subject]='Meeting'", "", "", "EntryID") _ArrayDisplay $oItem = _OL_ItemModify($oOL, $aResult[1][0], Default, "MeetingStatus=5") ; Send the meeting request _OL_ItemSend($oOL, $oItem) Edited November 2, 2016 by visler
water Posted November 2, 2016 Posted November 2, 2016 What is the value of @error and @extended after calling _OL_ItemModify and _OL_ItemSend? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
visler Posted November 2, 2016 Author Posted November 2, 2016 I have updated the code to display error codes and screenshoot attached "#include <OutlookEx.au3> ; Open the connection to Outlook Global $oOL = _OL_Open() ; Get the appointment you want to cancel $aResult = _OL_ItemFind($oOL, "*\Calendar", "", "[Subject]='Meeting'", "", "", "EntryID") MsgBox(48, "OutlookEX UDF: _OL_ItemFind Example Script", "Errorcode " & @error & ", @extended: " & @extended) ; $oItem = _OL_ItemModify($oOL, $aResult[1][0], Default, "MeetingStatus=5") MsgBox(48, "OutlookEX UDF: _OL_ItemFind Example Script", "Errorcode " & @error & ", @extended: " & @extended) ; Send the meeting request _OL_ItemSend($oOL, $oItem)
water Posted November 2, 2016 Posted November 2, 2016 (edited) Please give this modified version of your script a try: #include <OutlookEx.au3> ; Open the connection to Outlook Global $oOL = _OL_Open() ; Get the appointment you want to cancel $aResult = _OL_ItemFind($oOL, "*\Calendar", $olAppointment, "[Subject]='Meeting'", "", "", "EntryID,MeetingStatus") MsgBox(48, "OutlookEX UDF: _OL_ItemFind Example Script", "Errorcode " & @error & ", @extended: " & @extended) _ArrayDisplay($aResult) If $aResult[0][0] > 0 Then ; Items found If $aResult[1][1] = 0 Then ; Item is not a meeting, so simply delete it _OL_ItemDelete($oOL, $aResult[1][0]) Else $oItem = _OL_ItemModify($oOL, $aResult[1][0], Default, "MeetingStatus=5") MsgBox(48, "OutlookEX UDF: _OL_ItemFind Example Script", "Errorcode " & @error & ", @extended: " & @extended) ; Send the meeting request _OL_ItemSend($oOL, $oItem) EndIf EndIf If the value of MeetingStatus ($aResult[1][1]) is not 1 then you do not need to send a delete request but simply delete the item. Edited November 2, 2016 by water My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
visler Posted November 2, 2016 Author Posted November 2, 2016 Now the array looks better I am not sure I understand the part about deleting the item instead off sending a delete request. if MeetingStatus ($aResult[1][1]) <> 1 then _OL_ItemDelete($oOL, where do i get this entryid) else $oItem = _OL_ItemModify($oOL, $aResult[1][0], Default, "MeetingStatus=5") endif
water Posted November 2, 2016 Posted November 2, 2016 I modified my script in post #6 (note that I removed the quotes around $olAppointment). It now distinguishes between meetings (multiple participants) and appointments (entry can only be found in your calendar). My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
visler Posted November 2, 2016 Author Posted November 2, 2016 I have added a few displays. #include <OutlookEx.au3> ; Open the connection to Outlook Global $oOL = _OL_Open() ; Get the appointment you want to cancel $aResult = _OL_ItemFind($oOL, "*\Calendar", $olAppointment, "[Subject]='Meeting'", "", "", "EntryID,MeetingStatus") MsgBox(48, "OutlookEX UDF: _OL_ItemFind Example Script", "Errorcode " & @error & ", @extended: " & @extended) _ArrayDisplay($aResult) If $aResult[0][0] > 0 Then ; Items found If $aResult[1][1] = 0 Then ; Item is not a meeting, so simply delete it _OL_ItemDelete($oOL, $aResult[1][0]) MsgBox(48, "OutlookEX UDF: _OL_Itemdelete", "Errorcode " & @error & ", @extended: " & @extended) Else $oItem = _OL_ItemModify($oOL, $aResult[1][0], Default, "MeetingStatus=5") MsgBox(48, "OutlookEX UDF: _OL_Itemmodify", "Errorcode " & @error & ", @extended: " & @extended) ; Send the meeting request _OL_ItemSend($oOL, $oItem) MsgBox(48, "OutlookEX UDF: _OL_Itemsend", "Errorcode " & @error & ", @extended: " & @extended) EndIf EndIf Now the array returned look much more like i expected and all is returning 0 in errorcodes, but it looks like the appoint is not deleted and a re-run gives the same result in the array, but if i delete one of the meetings by hand the results is decreased by 1 .
water Posted November 2, 2016 Posted November 2, 2016 Seems you then need to delete the meeting from your calendar manually: #include <OutlookEx.au3> ; Open the connection to Outlook Global $oOL = _OL_Open() ; Get the appointment you want to cancel $aResult = _OL_ItemFind($oOL, "*\Calendar", $olAppointment, "[Subject]='Meeting'", "", "", "EntryID,MeetingStatus") MsgBox(48, "OutlookEX UDF: _OL_ItemFind Example Script", "Errorcode " & @error & ", @extended: " & @extended) _ArrayDisplay($aResult) If $aResult[0][0] > 0 Then ; Items found If $aResult[1][1] = 0 Then ; Item is not a meeting, so simply delete it _OL_ItemDelete($oOL, $aResult[1][0]) MsgBox(48, "OutlookEX UDF: _OL_Itemdelete", "Errorcode " & @error & ", @extended: " & @extended) Else $oItem = _OL_ItemModify($oOL, $aResult[1][0], Default, "MeetingStatus=5") MsgBox(48, "OutlookEX UDF: _OL_Itemmodify", "Errorcode " & @error & ", @extended: " & @extended) ; Send the meeting request _OL_ItemSend($oOL, $oItem) MsgBox(48, "OutlookEX UDF: _OL_Itemsend", "Errorcode " & @error & ", @extended: " & @extended) _OL_ItemDelete($oOL, $oItem) MsgBox(48, "OutlookEX UDF: _OL_Itemdelete", "Errorcode " & @error & ", @extended: " & @extended) EndIf EndIf My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
water Posted November 2, 2016 Posted November 2, 2016 My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now