Create new date ranges from date ranges intersections

I´m struggling to get the right expression to accomplish this task: Suppsose I have a list of date ranges (A, B and C), and another date range (D). What´s the right expression to create new date ranges (E, F and G), which are the result of the intersections between A,B,C and D? As far as I know, the operator “overlap with” only returns “yes” or “no”, but I need the start and end dates of each intersection period to create E, F and G. Thanks!