Для меня алгоритм - это то, что вы упомянули здесь .. т.е. "RRULE" .. вы можете "перепроектировать" его для разработки приложения / модуля для вывода его обратно ... так что его вам (т.е. разработчику) нужно как получить вывод в этом формате.
Я знаю, что это нелегкая работа, поскольку я играл с ней некоторое время, прежде чем нашел решение, близкое к близкому. Вы можете попробовать некоторый базовый планировщик, создав таблицу, скажем, события, с некоторыми полями, такими как recurrence_type (daily, month, weekly, month_by_day, month_by_date), repeat_until, num_occurences и т. Д.
Чтобы иметь все комбинации RRULES, он должен быть очень сложным, чтобы вывести желаемый формат. Я пробовал это в PHP / MySQL.