Calculate is quite difficult and the calculated data might be quite different from the real sample's CB and VB. CB of semiconductor can be measured roughly by Mott-Schottky plot measurement and VB by UPS measuement. If you already have a Eg data from UV-Vis measurement, then just simply measure the CB from the Mott-Schottky and you may know VB.
If you need to "calculate" the bands, because you don't have the possibility to perform measurements, probably one of the best computational tools to do it is nextNano. You can find it easily online, along with a lot of examples.