When opening the page, give it a few seconds to load. It fetches every Event-Name for every language from the API, this can take a few seconds (for me it took ~8 seconds). The results are stored in the browser so that the next time you open the page it skips the api-call and the list appears instantly. If new events are added, clear the local storage and then generate the EventList again (it can take some seconds to build it again). It's not very pretty and not fool-proof, so if you click the "Generate complete Event List" button too fast, too often ... I don't know what happens.
The underline for visited links is just temporary, if you close your browser and open it again, you won't see it. But you can see where you left off because the textfield still has the name of the last events inside (at least for me in opera).
One last thing: To change the output from the german to the english names, find the OutputList function and change dictionary["de"] to dictionary["en"].
If you want to use this for the other wikis (es, fr) feel free to modify this to show the appropriate textfields.