def _parse_datetime_field(self, dt_obj: Optional[Dict]) -> Optional[datetime]:
        """Parse datetime from Microsoft Graph API format."""
        if not dt_obj or not dt_obj.get("dateTime"):
            return None
        try:
            dt_str = dt_obj["dateTime"]
            if "T" in dt_str:
                # Handle timezone info
                if dt_str.endswith("Z"):
                    dt_str = dt_str.replace("Z", "+00:00")
                elif "+" not in dt_str and "-" not in dt_str[-6:]:
                    # If no timezone info, assume UTC
                    dt_str += "+00:00"
                return datetime.fromisoformat(dt_str)
        except (ValueError, TypeError) as e:
            logger.warning(f"Error parsing datetime: {str(e)}")
        return None
Parse datetime from Microsoft Graph API format.
backend/airweave/platform/sources/outlook_calendar.py