У Вас не сильно нагружена операционная часть (создание, изменение, удаление задач пользователя), поскольку самих задач у пользователя много не бывает. В сутках только 24 часа, и в году только 365 дней. Гораздо бОльшая нагрузка падает на поиск и фильтрацию списка задач (или дел, как Вы это назвали).
Возможным решением будет многомерное представление данных. Например,
по схеме "звезда": есть таблица задач и несколько таблиц измерений, по которым можно проводить выборку (пользователь, тип задачи, проект или категория задачи, место встречи, дата и время и т.п.). Это требует некоторой денормализации и бОльших затрат на операции с отдельными записями, но упрощает агрегацию и выборку списков.