I’m a newbie. I use this script to update my word document by finding the next created appointment in exchange calendar. It kinda works - but there seems to be a long delay between updating an event on exchange calendar and this script being able to detect it. So when I create a new event in busycal - this event appears just fine in iCal or Outlook - to me, meaning that the event is created in the exchange server, and seen by other programs synced to exchange server. But when I run the script, it cannot find it - until like sometime 15 min later or more. I’m unclear why. Is there an explicit command to update / refresh “store”?
use AppleScript version "2.4" use script "CalendarLib EC" version "1.1.3" -- put this at the top of your scripts use scripting additions use framework "Foundation" use framework "AppKit" set NextAppt to "" set PtName to "" tell application "Finder" set PtName to name of front window end tell set Pos1 to offset of "(PtNum" in PtName set Pos2 to offset of ")" in PtName set PtNumSearch to characters Pos1 thru Pos2 of PtName as string set PtPtNumSearch to "*" & PtNumSearch & "*" as string set theStartDate to (current date) set theStartDate to theStartDate + (1 * days) set hours of theStartDate to 0 set minutes of theStartDate to 0 set seconds of theStartDate to 0 set theEndDate to theStartDate + (540 * days) set theStore to fetch store -- get the event store, which you need below set theCalendars to fetch calendars "Calendar" event store theStore -- get the chosen calendars set theEvents to fetch events starting date theStartDate ending date theEndDate searching cals theCalendars event store theStore -- get the events set theEvents to filter events by pattern event list theEvents event summary PtPtNumSearch without using regex if (count theEvents) is not 0 then display dialog "Found event." repeat with nextEvent in theEvents set theInfo to event info for event nextEvent if (event_summary of theInfo does not contain "(can)") and (event_summary of theInfo does not contain "(information only)") then set NextAppt to (event_start_date of theInfo) as string set len to length of NextAppt set NextApttEnd to characters (len - 2) thru len of NextAppt as string set NextAppt to (characters 1 thru (len - 6) of NextAppt) & NextApttEnd as string exit repeat end if end repeat tell application "Microsoft Word" activate if name of active document contains PtName then set ContentToFind to "ddddd" as string set findRange to find object of selection tell findRange set forward to false clear formatting clear formatting its replacement set content to ContentToFind set content of its replacement to NextAppt execute find wrap find find continue ¬ replace replace one with match forward end tell end if end tell else display dialog "Next appointment not found." end if