Denne form for problem er et så minefelt af kantsager, at jeg altid ville uddelegere logikken til noget som IceCube (https://github.com/seejohnrun/ice_cube ). Den er lavet til at håndtere den slags tilbagevendende tidsplaner og leveres med nem support til serialisering osv. Selvom det kræver lidt gentænkning af, hvordan du gør tingene, vil jeg stærkt anbefale at bruge det.