I think, I got a working solution.
The approach of Daryl is a good start, but I needed to add some more specific calendar keywords to got it to work (a total of 14):
- first of all, a keyword 1st to 9th day of month needs to be created, because the 7th workday cant occur earlier then the 9th day of a month (assuming, that you count only Monday to Friday as working days), so we get rid of the first 9 days - 1ST_TO_9TH_MONTH
- then you need the 6th and 7th workday as keywords - 6TH_WD and 7TH_WD
- these needs to be duplicated with the logic of "if the 6th and 7th working day occurs on Monday, also the weekend before needs to be removed" 6TH_WD_PREVSAT, 6TH_WD_PREVSUN, 7TH_WD_PREVSAT, 7TH_WD_PREVSUN
- the next problem is the 10th day of month, as it can be, that it falls to a holiday and then the 7th is moved to the next day (11th day) => so I created a keyword which takes care of that 10TH_HOLIDAY
- now I've finally combined all the keyword into a offset keyword 7WD_TO_EOM
I've also exported the calendar object and attached if you want to have a look on it (I used the German holidays to get the working day list, so it probably need some adjustments).
Regards
Jan