Обычно я предоставляю интерфейсную логику, которая позволяет пользователю указывать повторяющееся событие, но затем фактически использует отдельные записи базы данных для записи событий как отдельных записей в SQL-сервере.
Другими словами, они могут указывать собрание каждый вечер понедельника в 19:00, но я записываю 52 записи за год, чтобы можно было изменять, удалять отдельные собрания или добавлять дополнительную информацию к этим событиям.
Я предоставляю методы, позволяющие пользователю отменять все будущие события, а затем повторно вводить новые повторяющиеся серии, если это необходимо.
У меня нет идеального способа справиться с этим, поэтому я буду следить за этой веткой, чтобы увидеть, не появятся ли какие-нибудь замечательные предложения.