You might like to take a look at @angus’s Events Plugin 📅, which basically does what I believe you are looking for.
It has its own UI for events, or you can use the official Discourse calendar-and-event plugin and UI, and it will just do the backend stuff.