Source code for langchain_google_community.calendar.get_calendars_info
"""Get information about the calendars in Google Calendar."""
import json
from typing import Optional
from langchain_core.callbacks import CallbackManagerForToolRun
from langchain_google_community.calendar.base import CalendarBaseTool
[docs]
class GetCalendarsInfo(CalendarBaseTool): # type: ignore[override, override]
"""Tool that get information about the calendars in Google Calendar."""
name: str = "get_calendars_info"
description: str = (
"Use this tool to get information about the calendars in Google Calendar."
)
def _run(self, run_manager: Optional[CallbackManagerForToolRun] = None) -> str:
"""Run the tool to get information about the calendars in Google Calendar."""
try:
calendars = self.api_resource.calendarList().list().execute()
data = []
for item in calendars.get("items", []):
data.append(
{
"id": item["id"],
"summary": item["summary"],
"timeZone": item["timeZone"],
}
)
return json.dumps(data)
except Exception as error:
raise Exception(f"An error occurred: {error}") from error