Денис Клoкoв, по нашему опыту - календарь является слабым местом в портале.
При наличии большого количества событий у конкретного пользователя - может вылетать именно у этого пользователя.
Удалять события лучше через api, потому как структура хранения событий разнесена по 2 таблицы (если я правильно помню) - это таблица хранения событий и таблица с правами на действия с событиями в календаре
При этом, удаляя через api - убедитесь, что событие физически удаляется, по умолчанию оно остается в таблице и просто помечается как удаленное.
При общении с разработчиками, мы услышали такой тезис: "портал не предназначен на такое количество событий". На вопрос о лимитах событий - ответа мы не получили.
Возможно, имеет смысл пересобрать окружение, а именно - вынести роль сервера базы данных из сервера приложений. Но что-то мне подсказывает, что это может не решить задачу, а решение возможно кроется в самой логике выборки событий, скорее всего она не оптимальная (без лимитов и прочее).