Scheduling for the day before (or after) the nth weekday of the month

Solution 1:

Below are two methods, one purely manual and the other uses Excel in addition to Outlook. Both methods may be more work than just manually creating the meetings, but they do answer the question.

Method 1 : Manual

  • In Outlook, create the series for the nth Wednesday of the month
  • Per each individual meeting, modify it to be one day before (or after).

It's possible to modify this way each individual meeting in the series, without affecting the rest of the series.

Method 2 : Export/Import via Excel

  • In Outlook, create a new temporary calendar, say named Temp
  • In Temp, create the series for the nth Wednesday of the month
  • Export Temp to a CSV file
  • Use Excel to open the CSV file
  • Add (or subtract) 1 day from all the dates (in one operation)
  • Import the CSV file back into Outlook main calendar.

For more detailed information on the above, see:

  • 3 Ways to Add or Subtract Days to a Date (Excel)
  • Changing the End Date on Recurring Appointments
    The article itself is not interesting, except that it details how to export a recurring meeting to a CSV file.

Solution 2:

Agree with Steven, since you only need to set up a calendar item once a month for a specific day, it won't be troublesome to create it manually.

According to my tests on the outlook client, there seems to be no way to set this directly. As a workaround, it's suggested that you could try to change your time zone to a time zone 24 hours earlier than the current time zone(File>Options>Calendar>Time zones) and create a nth weekday of the month calendar item. Then switch back to your original time zone. In this way, the meeting will be displayed the day before a nth weekday of the month in the original time zone, which can meet your expectations.

Solution 3:

I am providing two alternatives, which are likely most simple in terms of required steps/operation speed.

The balance of (time invested in getting acquainted with and using each solution) vs. (time saved in the operation / reduction of propensity to errors) depends very much on how often you will need to use it. This applies to any solution here or in other answers. If you mean to set up quite a few of these meetings and/or have a recurrence that spans several weeks, then I would go with method 2.

Method 1

This is a much simpler variant on "the time zones method".

  1. Create a meeting.
  2. Tick on Time zones
  3. If you want a meeting for "the day before the nth Wednesday at HH:MM" (say, at 2pm, HH:MM = 14:00), setup your recurring meeting for the nth Wednesday, at UTC+12, at hh:MM, with hh = (HH+5+12) mod 24, in the example hh=7. Number 5 stems from your UTC-5, number 12 stems form the UTC+12 used for the meeting. Given that HH:MM range from 00:00 to 23:59, that allows you starting your meetings no earlier than 7am, but that doesn't look like a problem. I have just tested this (I am at UTC-3), and it works nicely. Note that there exists UTC+14, remarkably...
  4. If you want a meeting for "the day after the nth Tuesday at HH:MM", you could use a similar method, with UTC-12. Given that you are at UTC-5, this only gives you the chance of starting meetings no later than 6:59am, probably useless.

Method 2

Use VBA. Perhaps the easiest way would be to setup the recurring meeting as usual, and use a VBA macro to change the time to one day earlier or later. You could record a macro while you perform these operations, and this gives you the basic structure of your macro. The resulting dates in the recorded macro would be fixed. You could edit the macro to apply the simple required math to compute the date instead of the fixed values.
This would take some time to put together (depending on your programming/VBA skills, it might be anything from 30 minutes to infinite), but perhaps not more than an alternative via Excel (1, 2).
The advantage of this is that once you have it, it is much simpler/faster than the others. Plus, you can add a button to your ribbon to make it even easier.
Note: I have my personal VbaProject.OTM that I carry and update over the years with some 100 macros that save me a lot of time, and reduce significantly the chance of errors.

enter image description here (although there are a few things not accessible to VBA in the MSOffice landscape).