Why not have a hybrid system? It will require a little bit more coding, but not much, I don't think...
Just have a system where you put in a new event, and you can assign it flags as to who can access it.
IE :
example 1: This event can be accessed by Users in usergroup 1,5,6,13 (and)(or) can be accessed by those with access to forum 11,15,21.
Would require access to one of the listed forums AND be in a specific user group when using the AND statement, and when using the OR statement would require one or the other, not both.
example 2: This event can be accessed by Users with access to forum 1,7,8 and can be accessed by those in usergroup *.
Would allow every user group to access to the forum, but they must have access to forums 1, 7 or 8.
Would be very easy to put those checks in... you'd just have to add an additional field or two to events that show who has access... could even be bitwise access levels if space is at a premium

But that's a little extreme and the logic involved would be a bit overwhelming.
I can help you with this part if you want.