I actually tried all of that to no avail.
It turns out that I have found the problem, but I don’t understand why it’s like this. Perhaps you’d know?
So to reiterate: what I did was take an expired event (one where the initial event date had already passed) and attempted to change it to a future date. Again I’m just testing this on localhost to see if I want to go down this road (presumably with the Pro version) on my live site.
I only had one expired event left–so I’ll have to wait a few days to try and replicate the problem organically–but at least for this one I noticed that the WordPress Publishing queue was not showing “Publish Immediately” as it does for any new events, but instead some seemingly arbitrary scheduled future publish date. I made no changes to that field manually so i don’t know what prompted this, but that seems to be where the problem is. Once I scheduled the publish to be “today’ and “now” it appears as expected on both the main Events page and on the widget.
Does seem like a bit of a bug though. You may wish to look into it. For now, if anyone else has this problem then the thing to check is the scheduled publish date of the Event post. In real life situations I would assume most people would not reschedule an expired event, but rather just push one in the future further into the future (which does not produce this error). However I could see reviving an old event if it were say an annual thing, just for the sake of not having to retype all the information about it. In that case, this error may crop up.