Best way to orchestrate events? (timing enemy spawns, explosions, building collapse, etc)

Say I have a couple of rooms in my game, and when the player enters each room, I want stuff to happen in a specific order. Like first 2 enemies spawn, when they’re killed I want a wall to blow up, then I want 4 more enemies entering from the hole in the wall, after they die I want the roof to collapse, then I want to unlock the door to the next room.

What would be the best way to orchestrate all this, in such a way so that I can easily use this system for multiple rooms with different events?

I’m thinking of using an Event Dispatcher to activate various stuff in the room, but I don’t know what the best way to manage the order of these events is? Is there like a schedule or playbook I can make?

bump for help