def serialize_event(payload) -> dict: """Upstream calendar event -> the fields the interview row stores.""" if not isinstance(payload,dict): payload={} online=payload.get("onlineMeeting") or payload.get("online_meeting") or {} if not isinstance(online,dict): online={} start=payload.get("start") end=payload.get("end") if isinstance(start,dict): start=start.get("dateTime") or start.get("date_time") if isinstance(end,dict): end=end.get("dateTime") or end.get("date_time") if hasattr(start,"isoformat"): start=start.isoformat() if hasattr(end,"isoformat"): end=end.isoformat() event_id=payload.get("id") return { "id": str(event_id) if event_id is not None else None, "web_link": payload.get("webLink") or payload.get("web_link") or None, "online_meeting_url": ( payload.get("onlineMeetingUrl") or payload.get("online_meeting_url") or online.get("joinUrl") or online.get("join_url") or None ), "subject": payload.get("subject"), "start": start, "end": end, }