Heute haben wir Donnerstag, den 05.10.2017. Jetzt möchte ich in einem Jahr diesen Termin wieder am Donnerstag haben, dann kann ich mit dem Datum nicht rechnen? Denn nächstes Jaht ist der 05.10.2017 kein Donnerstag sondern ein Freitag.
Mir scheint, du solltest erstmal eine genaue Anforderungsliste erstellen, denn das scheint mir schon sehr komplex zu werden.
Nach deinem Einwand könnte ich jetzt auch noch fragen, ob es der erste Donnerstag vor oder nach dem 5.10. des Jahres sein soll. Oder soll auch einfach nur der "erste Donnerstag eines Oktobers" möglich sein? Vielleicht auch der "zweite, dritte, letzte Donnerstag eines Monats"?
Wie ist es mit den Wiederholungen, im Moment hast du nur wöchentlich, monatlich und jährlich vorgesehen, aber man könnte doch auch "alle zwei Wochen / Monate / Jahre" benötigen?
Kurzum: Das lässt sich noch lange fortführen, die Datenbank muss entsprechend aussehen. Für das Wie fehlen hier bislang die Details.
In jedem Falle wirst du aber bei Verwendung einer SQL-Datenbank nicht darum herumkommen, die Terminspezifikationen und zusätzlich den sich jeweils ergebenden nächsten Termin abzuspeichern. Nur mit SQL wirst du aus den Spezifikationen nicht den nächsten Termin herausrechnen können, dazu braucht es "höhere" Logik.