Просто включать-выключать свои вм единоразово в определённое время или по рассписанию прекрасно умеет сам vCenter Server. Делал такое в одном проекте. Не говоря уже о внешнем шедуллере, дёргающим систему скриптами. Например, на PowerCli.
Другой вопрос, какой логики распределения работы виртуальных машин вы хотите добиться: не выше некого уровня утилизации ресурсов, максимально плотно с определённой планкой отзывчивости, максимально равномерно распределить по всему временному отрезку?