Display meeting links in calendar event output
Conference/meeting links (Google Meet, Zoom, etc.) were fetched from the API but never included in get_events() output. Extract video entry point from conferenceData (with hangoutLink fallback) and display it in all three output modes: single detailed, multi detailed, and basic list. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -172,6 +172,21 @@ def _preserve_existing_fields(
|
|||||||
event_body[field_name] = new_value
|
event_body[field_name] = new_value
|
||||||
|
|
||||||
|
|
||||||
|
def _get_meeting_link(item: Dict[str, Any]) -> str:
|
||||||
|
"""Extract video meeting link from event conference data or hangoutLink."""
|
||||||
|
conference_data = item.get("conferenceData")
|
||||||
|
if conference_data and "entryPoints" in conference_data:
|
||||||
|
for entry_point in conference_data["entryPoints"]:
|
||||||
|
if entry_point.get("entryPointType") == "video":
|
||||||
|
uri = entry_point.get("uri", "")
|
||||||
|
if uri:
|
||||||
|
return uri
|
||||||
|
hangout_link = item.get("hangoutLink", "")
|
||||||
|
if hangout_link:
|
||||||
|
return hangout_link
|
||||||
|
return ""
|
||||||
|
|
||||||
|
|
||||||
def _format_attendee_details(
|
def _format_attendee_details(
|
||||||
attendees: List[Dict[str, Any]], indent: str = " "
|
attendees: List[Dict[str, Any]], indent: str = " "
|
||||||
) -> str:
|
) -> str:
|
||||||
@@ -448,6 +463,8 @@ async def get_events(
|
|||||||
)
|
)
|
||||||
attendee_details_str = _format_attendee_details(attendees, indent=" ")
|
attendee_details_str = _format_attendee_details(attendees, indent=" ")
|
||||||
|
|
||||||
|
meeting_link = _get_meeting_link(item)
|
||||||
|
|
||||||
event_details = (
|
event_details = (
|
||||||
f"Event Details:\n"
|
f"Event Details:\n"
|
||||||
f"- Title: {summary}\n"
|
f"- Title: {summary}\n"
|
||||||
@@ -456,6 +473,10 @@ async def get_events(
|
|||||||
f"- Description: {description}\n"
|
f"- Description: {description}\n"
|
||||||
f"- Location: {location}\n"
|
f"- Location: {location}\n"
|
||||||
f"- Color ID: {color_id}\n"
|
f"- Color ID: {color_id}\n"
|
||||||
|
)
|
||||||
|
if meeting_link:
|
||||||
|
event_details += f"- Meeting Link: {meeting_link}\n"
|
||||||
|
event_details += (
|
||||||
f"- Attendees: {attendee_emails}\n"
|
f"- Attendees: {attendee_emails}\n"
|
||||||
f"- Attendee Details: {attendee_details_str}\n"
|
f"- Attendee Details: {attendee_details_str}\n"
|
||||||
)
|
)
|
||||||
@@ -494,10 +515,16 @@ async def get_events(
|
|||||||
)
|
)
|
||||||
attendee_details_str = _format_attendee_details(attendees, indent=" ")
|
attendee_details_str = _format_attendee_details(attendees, indent=" ")
|
||||||
|
|
||||||
|
meeting_link = _get_meeting_link(item)
|
||||||
|
|
||||||
event_detail_parts = (
|
event_detail_parts = (
|
||||||
f'- "{summary}" (Starts: {start_time}, Ends: {end_time})\n'
|
f'- "{summary}" (Starts: {start_time}, Ends: {end_time})\n'
|
||||||
f" Description: {description}\n"
|
f" Description: {description}\n"
|
||||||
f" Location: {location}\n"
|
f" Location: {location}\n"
|
||||||
|
)
|
||||||
|
if meeting_link:
|
||||||
|
event_detail_parts += f" Meeting Link: {meeting_link}\n"
|
||||||
|
event_detail_parts += (
|
||||||
f" Attendees: {attendee_emails}\n"
|
f" Attendees: {attendee_emails}\n"
|
||||||
f" Attendee Details: {attendee_details_str}\n"
|
f" Attendee Details: {attendee_details_str}\n"
|
||||||
)
|
)
|
||||||
@@ -513,9 +540,12 @@ async def get_events(
|
|||||||
event_details_list.append(event_detail_parts)
|
event_details_list.append(event_detail_parts)
|
||||||
else:
|
else:
|
||||||
# Basic output format
|
# Basic output format
|
||||||
event_details_list.append(
|
meeting_link = _get_meeting_link(item)
|
||||||
f'- "{summary}" (Starts: {start_time}, Ends: {end_time}) ID: {item_event_id} | Link: {link}'
|
basic_line = f'- "{summary}" (Starts: {start_time}, Ends: {end_time})'
|
||||||
)
|
if meeting_link:
|
||||||
|
basic_line += f" Meeting: {meeting_link}"
|
||||||
|
basic_line += f" ID: {item_event_id} | Link: {link}"
|
||||||
|
event_details_list.append(basic_line)
|
||||||
|
|
||||||
if event_id:
|
if event_id:
|
||||||
# Single event basic output
|
# Single event basic output
|
||||||
|
|||||||
Reference in New Issue
Block a user