I've got this half figured out, but don't know what to do about it:
I've entered a lot of birthdays into my calendar as once-a-year (well,
duh) recurring events. This is a pretty nice thing to have pop up as a
reminder. As birthdays last all day I left the reminders as all day
events. HOWEVER. However, I recently moved from the Eastern Time Zone
to the Central Time Zone.
Well, all of those events (and there's a lot of them) that were
entered when my Office Preference (General>Calendar>Default time zone
for new events) was set to EST now think they begin an hour earlier
which is the previous day. So they're all showing up in my calendar a
day early. If I open them they show the correct date. I've changed the
time zone in my Office preferences AND in my Mac system preferences.
How do I correct everything that was done when I lived life an hour
later?
Hi, Martin
Unfortunately, Time Zone properties of events are not scriptable. (I've been
asking for this for years, but they keep on ignoring it. It must not be
considered a high priority. Same with all the invitation features for
events. Maybe one day. Please make a feature request.) I've podged together
a clunky GUI script, which might work, or then again it might not. The
essential things (I know this sounds peculiar) that you must run it from
Script Editor, not from the Entourage script menu. It runs too fast from the
script menu, at least on my machine, and the event window is still called
"untitled" and there's no Event menu for GUI scripting to work on, so it
fails. Adding a delay doesn't help - everything just freezes.
OK. First you have to go to System Preferences in the Dock, click "Universal
Access". Check the box "Enable access for assistive devices".
Now go to Applications/AppleScript/Script Editor and open it. Paste the
following script into the window, but do not run it yet. Come back here.
Now, if you're in Entourage 2004, go to the Calendar area in Entourage. If
you're in Entourage X or 2001, go to the Custom View area.
If you're in 2004, you should see an "All Events" custom view already there.
If not, or if you're in X or 2001, you can make one. However, you'd be
better off in all cases if you have a smarter set of criteria for just the
events you're looking for. If not, make an All Events view of just Calendar
Events:
Item Types: ? Calendar events [only]
Match <if ANY criteria are met>
Category is None
Category Is not None
Sort by Name or Date, whichever is more appropriate for selecting the events
you want. If you have a narrow set of criteria, select all and command-click
to de-select events that don't belong. Otherwise shift-click a clump. then
command-click to select events that do belong.
OK. When you've got the correct events selected, make sure that the window
with the list of selected calendar events is in front (not this message!)
and has the focus (selection is colored until you move away from Entourage).
Now go to Script Editor, click the Compile button which should restore
formatting. Then click Run. Good luck. GUI scripting can be extremely wonky
at the best of times. Events which were originally created by script or sync
(including Palm sync) pop up an "Are you sure you want to change the time of
the invitation" window, as if these were invitations (dumb bug). The script
should take care of those two but might get out of phase and you might have
to click them closed later.
Here it is:
tell application "Microsoft Entourage"
activate
try
set theEvents to the selection
if class of theEvents is not list then error number -128 -- focus
must be on selected events
on error
beep
display dialog "First you have to select some calendar events in a
calendar Custom View, and have the focus on the selected events." buttons
{"Cancel"} default button 1 with icon 0
return
end try
repeat with i from 1 to (count my theEvents)
set theEvent to item i of my theEvents
if class of theEvent is event then
activate
set eventName to name of theEvent
open theEvent
--try
my ChangeTimeZone()
--end try
close window eventName --saving yes
end if
end repeat
end tell
to ChangeTimeZone()
tell application "System Events"
tell process "Microsoft Entourage"
pick menu item "Central Time (US & Canada)" of menu 1 of menu
item "Time Zone" of menu "Event" of menu bar item "Event" of menu bar 1
pick menu item "Save" of menu "File" of menu bar item "File" of
menu bar 1 -- because need to confirm "OK" next
try
click button "OK" of window 1
end try
end tell
end tell
end ChangeTimeZone
There are ways of "internationalizing" this script using numbers instead of
names, or others can substitute the correct names of their menus and menu
items.
--
Paul Berkowitz
MVP Entourage
Entourage FAQ Page: <
http://www.entourage.mvps.org/faq/index.html>
AppleScripts for Entourage: <
http://macscripter.net/scriptbuilders/>
Please "Reply To Newsgroup" to reply to this message. Emails will be
ignored.
PLEASE always state which version of Entourage you are using - **2004**, X
or 2001. It's often impossible to answer your questions otherwise.
--