async def _generate_freebusy_entities(
        self, client: httpx.AsyncClient, calendar_list_entry: GoogleCalendarListEntity
    ) -> AsyncGenerator[GoogleCalendarFreeBusyEntity, None]:
        """Yield a GoogleCalendarFreeBusyEntity for the next 7 days for each calendar."""
        url = "https://www.googleapis.com/calendar/v3/freeBusy"
        now = datetime.utcnow()
        in_7_days = now + timedelta(days=7)

        request_body = {
            "timeMin": now.isoformat() + "Z",
            "timeMax": in_7_days.isoformat() + "Z",
            "items": [{"id": calendar_list_entry.calendar_id}],
        }
        data = await self._post_with_auth(client, url, request_body)
        cal_busy_info = data.get("calendars", {}).get(calendar_list_entry.calendar_id, {})
        busy_ranges = cal_busy_info.get("busy", [])

        yield GoogleCalendarFreeBusyEntity(
            entity_id=calendar_list_entry.calendar_id + "_freebusy",
            breadcrumbs=[],
            calendar_id=calendar_list_entry.calendar_id,
            busy=busy_ranges,
        )
Yield a GoogleCalendarFreeBusyEntity for the next 7 days for each calendar.
backend/airweave/platform/sources/google_calendar.py