diff --git a/fixtures/program/rrule.json b/fixtures/program/rrule.json
index 4db94b12636bce53b04b598e97b63b896231231c..c63ee4f3b75a3b9b1c70a4d3e149981cbe4a6187 100644
--- a/fixtures/program/rrule.json
+++ b/fixtures/program/rrule.json
@@ -1,144 +1,373 @@
 [
   {
     "model": "program.rrule",
-    "pk": 1,
+    "pk": 0,
     "fields": {
       "name": "einmalig",
       "freq": 0,
       "interval": 1,
       "by_set_pos": null,
+      "by_weekdays": null,
       "count": 1
     }
   },
   {
     "model": "program.rrule",
-    "pk": 2,
+    "pk": 31,
     "fields": {
       "name": "täglich",
       "freq": 3,
       "interval": 1,
       "by_set_pos": null,
+      "by_weekdays": null,
       "count": null
     }
   },
   {
     "model": "program.rrule",
-    "pk": 3,
+    "pk": 21,
+    "fields": {
+      "name": "wöchentlich",
+      "freq": 2,
+      "interval": 1,
+      "by_set_pos": null,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 2110,
     "fields": {
       "name": "werktäglich",
-      "freq": 3,
+      "freq": 2,
       "interval": 1,
       "by_set_pos": null,
+      "by_weekdays": "0,1,2,3,4",
       "count": null
     }
   },
   {
     "model": "program.rrule",
-    "pk": 4,
+    "pk": 2111,
     "fields": {
-      "name": "wöchentlich",
+      "name": "am Wochenende",
       "freq": 2,
       "interval": 1,
       "by_set_pos": null,
+      "by_weekdays": "5,6",
       "count": null
     }
   },
   {
     "model": "program.rrule",
-    "pk": 5,
+    "pk": 22,
     "fields": {
-      "name": "zweiwöchentlich",
+      "name": "zwei-wöchentlich",
       "freq": 2,
       "interval": 2,
       "by_set_pos": null,
+      "by_weekdays": null,
       "count": null
     }
   },
   {
     "model": "program.rrule",
-    "pk": 6,
+    "pk": 24,
     "fields": {
-      "name": "vierwöchentlich",
+      "name": "vier-wöchentlich",
       "freq": 2,
       "interval": 4,
       "by_set_pos": null,
+      "by_weekdays": null,
       "count": null
     }
   },
   {
     "model": "program.rrule",
-    "pk": 7,
+    "pk": 111,
     "fields": {
-      "name": "gerade Kalenderwoche",
-      "freq": 2,
+      "name": "monatlich am ersten",
+      "freq": 1,
       "interval": 1,
-      "by_set_pos": null,
+      "by_set_pos": 1,
+      "by_weekdays": null,
       "count": null
     }
   },
   {
     "model": "program.rrule",
-    "pk": 8,
+    "pk": 112,
     "fields": {
-      "name": "ungerade Kalenderwoche",
-      "freq": 2,
+      "name": "monatlich am zweiten",
+      "freq": 1,
       "interval": 1,
-      "by_set_pos": null,
+      "by_set_pos": 2,
+      "by_weekdays": null,
       "count": null
     }
   },
   {
     "model": "program.rrule",
-    "pk": 9,
+    "pk": 113,
     "fields": {
-      "name": "Jede 1. Woche im Monat",
+      "name": "monatlich am dritten",
       "freq": 1,
       "interval": 1,
-      "by_set_pos": 1,
+      "by_set_pos": 3,
+      "by_weekdays": null,
       "count": null
     }
   },
   {
     "model": "program.rrule",
-    "pk": 10,
+    "pk": 114,
     "fields": {
-      "name": "Jede 2. Woche im Monat",
+      "name": "monatlich am vierten",
       "freq": 1,
       "interval": 1,
-      "by_set_pos": 2,
+      "by_set_pos": 4,
+      "by_weekdays": null,
       "count": null
     }
   },
   {
     "model": "program.rrule",
-    "pk": 11,
+    "pk": 115,
     "fields": {
-      "name": "Jede 3. Woche im Monat",
+      "name": "monatlich am fünften",
       "freq": 1,
       "interval": 1,
+      "by_set_pos": 5,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 120,
+    "fields": {
+      "name": "zwei-monatlich am letzten",
+      "freq": 1,
+      "interval": 2,
+      "by_set_pos": -1,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 121,
+    "fields": {
+      "name": "zwei-monatlich am ersten",
+      "freq": 1,
+      "interval": 2,
+      "by_set_pos": 1,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 122,
+    "fields": {
+      "name": "zwei-monatlich am zweiten",
+      "freq": 1,
+      "interval": 2,
+      "by_set_pos": 2,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 123,
+    "fields": {
+      "name": "zwei-monatlich am dritten",
+      "freq": 1,
+      "interval": 2,
       "by_set_pos": 3,
+      "by_weekdays": null,
       "count": null
     }
   },
   {
     "model": "program.rrule",
-    "pk": 12,
+    "pk": 124,
     "fields": {
-      "name": "Jede 4. Woche im Monat",
+      "name": "zwei-monatlich am vierten",
       "freq": 1,
-      "interval": 1,
+      "interval": 2,
       "by_set_pos": 4,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 125,
+    "fields": {
+      "name": "zwei-monatlich am fünften",
+      "freq": 1,
+      "interval": 2,
+      "by_set_pos": 5,
+      "by_weekdays": null,
       "count": null
     }
   },
   {
     "model": "program.rrule",
-    "pk": 13,
+    "pk": 110,
     "fields": {
-      "name": "Jede 5. Woche im Monat",
+      "name": "monatlich am letzten",
       "freq": 1,
       "interval": 1,
+      "by_set_pos": -1,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 131,
+    "fields": {
+      "name": "drei-monatlich am ersten",
+      "freq": 1,
+      "interval": 3,
+      "by_set_pos": 1,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 132,
+    "fields": {
+      "name": "drei-monatlich am zweiten",
+      "freq": 1,
+      "interval": 3,
+      "by_set_pos": 2,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 133,
+    "fields": {
+      "name": "drei-monatlich am dritten",
+      "freq": 1,
+      "interval": 3,
+      "by_set_pos": 3,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 134,
+    "fields": {
+      "name": "drei-monatlich am vierten",
+      "freq": 1,
+      "interval": 3,
+      "by_set_pos": 4,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 135,
+    "fields": {
+      "name": "drei-monatlich am fünften",
+      "freq": 1,
+      "interval": 3,
       "by_set_pos": 5,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 130,
+    "fields": {
+      "name": "drei-monatlich am letzten",
+      "freq": 1,
+      "interval": 3,
+      "by_set_pos": -1,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 141,
+    "fields": {
+      "name": "vier-monatlich am ersten",
+      "freq": 1,
+      "interval": 4,
+      "by_set_pos": 1,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 142,
+    "fields": {
+      "name": "vier-monatlich am zweiten",
+      "freq": 1,
+      "interval": 4,
+      "by_set_pos": 2,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 143,
+    "fields": {
+      "name": "vier-monatlich am dritten",
+      "freq": 1,
+      "interval": 4,
+      "by_set_pos": 3,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 144,
+    "fields": {
+      "name": "vier-monatlich am vierten",
+      "freq": 1,
+      "interval": 4,
+      "by_set_pos": 4,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 145,
+    "fields": {
+      "name": "vier-monatlich am fünften",
+      "freq": 1,
+      "interval": 4,
+      "by_set_pos": 5,
+      "by_weekdays": null,
+      "count": null
+    }
+  },
+  {
+    "model": "program.rrule",
+    "pk": 140,
+    "fields": {
+      "name": "vier-monatlich am letzten",
+      "freq": 1,
+      "interval": 4,
+      "by_set_pos": -1,
+      "by_weekdays": null,
       "count": null
     }
   }