def _create_event_entity(
        self, event_data: Dict, cal_breadcrumb: Breadcrumb
    ) -> OutlookCalendarEventEntity:
        """Create an OutlookCalendarEventEntity from event data."""
        event_id = event_data["id"]
        event_subject = event_data.get("subject", "No Subject")

        # Extract event fields
        start_info = event_data.get("start", {})
        end_info = event_data.get("end", {})

        return OutlookCalendarEventEntity(
            entity_id=event_id,
            breadcrumbs=[cal_breadcrumb],
            subject=event_subject,
            body_preview=event_data.get("bodyPreview"),
            body_content=event_data.get("body", {}).get("content")
            if event_data.get("body")
            else None,
            body_content_type=event_data.get("body", {}).get("contentType"),
            start_datetime=self._parse_datetime_field(start_info),
            start_timezone=start_info.get("timeZone"),
            end_datetime=self._parse_datetime_field(end_info),
            end_timezone=end_info.get("timeZone"),
            is_all_day=event_data.get("isAllDay", False),
            is_cancelled=event_data.get("isCancelled", False),
            is_draft=event_data.get("isDraft", False),
            is_online_meeting=event_data.get("isOnlineMeeting", False),
            is_organizer=event_data.get("isOrganizer", False),
            is_reminder_on=event_data.get("isReminderOn", True),
            show_as=event_data.get("showAs"),
            importance=event_data.get("importance"),
            sensitivity=event_data.get("sensitivity"),
            response_status=event_data.get("responseStatus"),
            organizer=event_data.get("organizer"),
            attendees=event_data.get("attendees"),
            location=event_data.get("location"),
            locations=event_data.get("locations", []),
            categories=event_data.get("categories", []),
            created_at=self._parse_simple_datetime(event_data.get("createdDateTime")),
            updated_at=self._parse_simple_datetime(event_data.get("lastModifiedDateTime")),
            web_link=event_data.get("webLink"),
            online_meeting_url=event_data.get("onlineMeetingUrl"),
            online_meeting_provider=event_data.get("onlineMeetingProvider"),
            online_meeting=event_data.get("onlineMeeting"),
            series_master_id=event_data.get("seriesMasterId"),
            recurrence=event_data.get("recurrence"),
            reminder_minutes_before_start=event_data.get("reminderMinutesBeforeStart"),
            has_attachments=event_data.get("hasAttachments", False),
            ical_uid=event_data.get("iCalUId"),
            change_key=event_data.get("changeKey"),
            original_start_timezone=event_data.get("originalStartTimeZone"),
            original_end_timezone=event_data.get("originalEndTimeZone"),
            allow_new_time_proposals=event_data.get("allowNewTimeProposals", True),
            hide_attendees=event_data.get("hideAttendees", False),
        )
Create an OutlookCalendarEventEntity from event data.
backend/airweave/platform/sources/outlook_calendar.py