When a user clicks on any day within a DateChooser controller and you want to automatically select every day for that week, you can use the selectedRanges property of the control. This is easy adaptable to selecting months or any custom range.

Define some time constants

private static const millisecondsPerMinute:int = 1000 * 60;
private static const millisecondsPerHour:int = 1000 * 60 * 60;
private static const millisecondsPerDay:int = 1000 * 60 * 60 * 24;

Add a DateChooser control

<mx:DateChooser id="calendar" x="0.5" y="76" width="205"
		showToday="false"
		enabled="false"
		change="calendarClickHandler(event)" />

Set the selectedRanges property

private function calendarClickHandler(event:CalendarLayoutChangeEvent):void
{
	var selectedRanges:Array = new Array();
	var selectRange:Object = new Object();
	var rangeStart:Date = new Date(event.newDate.getTime() - (millisecondsPerDay * event.newDate.day));
	var rangeEnd:Date = new Date(rangeStart.getTime() + (millisecondsPerDay * 6));

	selectRange.rangeStart = rangeStart;
	selectRange.rangeEnd = rangeEnd;
	selectedRanges.push(selectRange);

	calendar.selectedRanges = selectedRanges;
}