Minimal date interval cover algorithm
This can be solved in $O(n \log n)$ time by a greedy algorithm.  Take the earliest week you need to cover (that isn't covered yet).  Pick the set of days-of-the-week that you need to cover in that week.  Choose a filtered data interval that starts with that week, uses that mask, and extends as far as possible.  Add that to your collection, and repeat.

I'll let you work out the proof that it is correct, via an exchange argument.  How to prove greedy algorithm is correct may be helpful.

To make this run efficiently with a $O(n \log n)$ worst-case time, you'll need a proper data structure for storing the filtered intervals and figuring out how far you can extend an interval.  I'll let you figure that out, but a hint: a balanced binary search tree provides $O(\log n)$ running time for all basic operations.