You’ve got the basic idea. I was thinking of a couple different approaches I could take with this if I had to modify stuff to do it myself.
For any event where there is no physical venue, and thus no zip code – could I modify the location search to include nearby events AND all events with a blank zip code? That would be the first thing I’d try because it seems the easiest in theory.
Falling short of that, I would try to perform a second category search in addition to the user’s location search. I could try to mix the results into one list, or I could return them as 2 separate lists, calling one “local events” and one “national events”.