не знаю из БД ли - нужны требования. Но, если это список календарей из БД и (согласно требованиям событий не так много, как и пользователей) - то здесь в принципе простор для реализации вплоть до расчета предварительного в памяти на ближайших N часов :) - в общем - могут быть варианты... Думаю что тут масса подходов в реализации