Это не простое решение, однако это можно сделать. см. нижеприведенную ссылку для получения более подробной информации Recurring Events in fullCalendar - ее суть
три этапа обработки событий: добавить, редактировать удалить. технически вид является фазой, но она тривиальна
на создание вам необходимо определить частоту повторения, я оставлю форму аспект, что до вас
данные, которые вы должны есть, уникальный идентификатор события, isRecurring (boolean), уникальный идентификатор повтора для каждого повтора, дата повторения (я предпочитаю рассчитать это и сохранить даты события).
Редактирование/удаление теперь становятся немного более сложными: пользователю необходимо предложить выбрать конкретное событие или все события в очереди. если он конкретный. все изменения производятся в соответствии с уникальным идентификатором повтора. если это все событие, используется идентификатор родительского события.
это решение очень высокого уровня, но вы не указали отправную точку для решения кода