Это сгруппировало бы его по дням года:
events.GroupBy(e => string.Format("{0}.{1}+", e.date.DayOfYear, e.date.Year);
Итак, теперь вам просто нужно выяснить свойство WeekOfYear или QuarterOfYear даты и использовать его в качестве условия группировки.
Для QuarterOfYear это может выглядеть примерно так:
events.GroupBy(e => string.Format("{0}.{1}+", (e.date.Month % 4) + 1, e.date.Year);
Но в течение недели все будет сложнее. Насколько я помню, есть разные способы начать считать недели в году. Проверьте NodaTime или другую библиотеку дат, чтобы сделать это для вас ...