Event planning refactoring

While working on #68, I decided it is time to refactor events planning a bit. I will be refactoring a bit more while working on other issues as well, but this had to be done so that I will be able to implement other features (like #70) without a lot of a hassle.
Maybe this should be rolled up into a class method?