Я бы диапазон дат формировал на клиенте, запрашивал данные с сервера из этого диапазона.
Таблицу бы рисовал по этому диапазону, а содержимое ячеек уже перебирал по данным с сервера.
В ячейках таблицы обработчики бы расставлял типа
<a href="" ng-click="doSomething(room)">click</a>
а в контроллере:
function MyCtrl($scope,$http) {
$scope.doSomething(room){
//room - объект комнаты
//можно сохранить на сервер и т.п.
}
}