Source code for langchain_google_community.calendar.move_event

"""Move an event between calendars in Google Calendar."""

from typing import Optional, Type

from langchain_core.callbacks import CallbackManagerForToolRun
from pydantic import BaseModel, Field

from langchain_google_community.calendar.base import CalendarBaseTool


[docs] class MoveEventSchema(BaseModel): """Input for CalendarMoveEvent.""" event_id: str = Field(..., description="The event ID to move.") origin_calenddar_id: str = Field(..., description="The origin calendar ID.") destination_calendar_id: str = Field( ..., description="The destination calendar ID." ) send_updates: Optional[str] = Field( default=None, description=( "Whether to send updates to attendees." "Allowed values are 'all', 'externalOnly', or 'none'." ), )
[docs] class CalendarMoveEvent(CalendarBaseTool): # type: ignore[override, override] """Tool that move an event between calendars in Google Calendar.""" name: str = "move_calendar_event" description: str = "Use this tool to move an event between calendars." args_schema: Type[MoveEventSchema] = MoveEventSchema def _run( self, event_id: str, origin_calendar_id: str, destination_calendar_id: str, send_updates: Optional[str] = None, run_manager: Optional[CallbackManagerForToolRun] = None, ) -> str: """Run the tool to update an event in Google Calendar.""" try: result = ( self.api_resource.events() .move( eventId=event_id, calendarId=origin_calendar_id, destination=destination_calendar_id, sendUpdates=send_updates, ) .execute() ) return f"Event moved: {result.get('htmlLink')}" except Exception as error: raise Exception(f"An error occurred: {error}") from error