Happening allows users to search for conventions by name and by topic.
Results can be sorted by start date or by distance from their current location. Users can change their current location to see events near a different city.
Cross-device compatibility is nonexistent. If you're using it on a screen size smaller than a laptop, it's going to be a rough experience.
Most people don't think "I really want to go to a carpentry convention; what's the one nearest me?" Instead, a friend tells them about a cool carpentry convention, and they then search for the convention's name and go directly to its site. In other words, when walking the normal user flow of friend recommendation --> web search engine --> convention website, a directory-like tool doesn't figure in at all. This is a polite way of saying that Happening might have no reason to exist.
From the point of view of the attendee, convention attendance isn't a discovery problem, it's a collective action problem. Even if a user finds a perfect list of music festivals, most people aren't willing to go unless several of their friends have publicly declared an intention to attend.
The web is a collection of documents for very good information-architecture reasons. Just because you can write something as a single page application doesn't mean that you should.
When programming a "standard" web application (i.e., one that acts as a browser interface to some form of persistent storage), start with the resource types that the application is aware of, then diagram their schemas, list the CRUD functions permitted for each one, derive a URL structure from those functions, and sketch the interface for each URL type. The other way around is a recipe for heartbreak.
Don't assume that your competition for users is a startup with similar features. It might just be users using web search engines as a Swiss army knife rather than using your purpose-built tool.