draggable calendar refactor