Exactly... I've started building something using Hugo that does all this. That way you can create a calendar section, and then use front-matter to define the calendar entries in that section. It even creates an ICS for each item and a calendar for the entire section.