A visitor to our forums had a question about time zones:
I regularly need to schedule events in Pacific and Eastern time. Is there a way to get rid of all the excess time zones? For example, I counted *six* different entries for UTC-5 (US eastern time). I get that there are places with weird daylight saving rules, but honestly, i will never need to know what time it is in Haiti, Bogota, Saskatchewan, Easter island, etc. I could really use a condensed "favorites" menu here be able to delete these other time zones.
Unfortunately there isn't an MRU for time zones (you could put in a suggestion at outlook.uservoice.com). You can delete time zone entries from the Windows registry, but I don't recommend it and Windows updates may restore them.
If you use a limited number of zones, it would be better to use macros to set the zones then create buttons on the appointment ribbon for the macros so they are easy to use.
This sample will set the appointment (or meeting) starting time zone to Eastern, Central, or Pacific and ending time zone to Hawaiian or Pacific time. If you haven't changed the end time zone, the start value will be used for the ending time zone. If you have an end time zone that is different than the start time zone, the macros will only change the start time.
Duplicate the sEasternTZ macro, change the name and the time zone for each zone you use frequently. The zone names MS uses are listed at Microsoft Time Zone Index Values.
Dim tzStart As TimeZone Sub sEasternTZ() ' Repeat this macro, using new names ' for each start zone you use frequently Set tzStart = Application.TimeZones.Item("Eastern Standard Time") changeStartTZ End Sub Sub sCentralTZ() Set tzStart = Application.TimeZones.Item("Central Standard Time") changeStartTZ End Sub Sub sPacificTZ() Set tzStart = Application.TimeZones.Item("Pacific Standard Time") changeStartTZ End Sub Sub eHawaiiTZ() ' This sets a different end tz ' Repeat this macro, using new names ' for each ending zone you need frequently Set tzStart = Application.TimeZones.Item("Hawaiian Standard Time") changeEndTZ End Sub Sub ePacificTZ() Set tzStart = Application.TimeZones.Item("Pacific Standard Time") changeEndTZ End Sub Private Sub changeStartTZ() Set olAppt = Application.ActiveInspector.CurrentItem With olAppt .StartTimeZone = tzStart End With End Sub Private Sub changeEndTZ() Set olAppt = Application.ActiveInspector.CurrentItem With olAppt .EndTimeZone = tzStart End With End Sub
How to use the macros
First: You will need macro security set to low during testing.
To check your macro security in Outlook 2010 and newer, go to File, Options, Trust Center and open Trust Center Settings, and change the Macro Settings. In Outlook 2007 and older, itâs at Tools, Macro Security. If Outlook tells you it needs to be restarted, close and reopen Outlook. Note: after you test the macro and see that it works, you can either leave macro security set to low or sign the macro.
Now open the VBA Editor by pressing Alt+F11 on your keyboard.
Put the code in a module:
- Right click on Project1 and choose Insert > Module
- Copy and paste the macro into the new module.
To add the macros to the ribbon:
- Open a new appointment
- Right click in an open area at the end of the ribbon, choose Customize the ribbon
- Select Macros in the Choose commands from menu
- Click New group to create a group for the Start macros
- Click Rename to add a friendly name
- Create a new group for end time macros and rename it
- Select one of the new groups then select the first macro.
- Click Add. If the macros are grouped together, click Add until all are added, otherwise, select the next macro and click Add.
- Select a macro on the right the click Rename to customize the name and icon.
- Repeat for each macro.
- Click OK when finished.
More information as well as screenshots are at How to use the VBA Editor.