Schedule the games
Lay out your rounds, pitches and kick-off times, and let tourno generate the games from your group setup. Reschedules are painless - change a time or a pitch and every page shows the update immediately.
A competition without groups is scheduled the same way. Say how many games each team should play - or ask for a full round robin - and tourno draws the fixtures, keeping teams from the same club apart and making sure the same two teams do not meet twice while anyone else is still free.
Build it all up front: the entire tournament can be scheduled before a single ball is kicked - knockout games that take their teams from group positions (“winner of Group A vs runner-up of Group B”), games that depend on other games (“winner of semi-final 1”), even entire second-phase groups formed from the results of the first ones. On matchday, the bracket fills itself in as the results arrive.
Nothing is set in stone: a game can be moved out of its group, or into one that holds both of its teams, at any point - even after it has been played. The tables it leaves and joins are both recalculated, so the standings stay right.