integer('id')->description('Event ID to edit.') ->required() ->string('eventTitle')->description('Title of the event.') ->required() ->string('dateFrom')->description('Start date in user timezone format ISO8601 (example: 2024-04-30T15:00:00-04:00).') ->required() ->string('dateTo')->description('End date in user timezone format ISO8601 (example: 2024-04-30T15:00:00-04:00).') ->required() ->boolean('allDay')->description('Whether this is an all-day event.'); } public function name(): string { return 'editEvent'; } public function description(): string { return 'Edits an existing calendar event.'; } /** * Handle the tool request. */ public function handle(array $arguments): ToolResult { $result = $this->calendarService->editEvent([ 'id' => (int) ($arguments['id'] ?? 0), 'description' => $arguments['eventTitle'], 'dateFrom' => $arguments['dateFrom'], 'dateTo' => $arguments['dateTo'], 'allDay' => $arguments['allDay'] ?? false, ]); if ($result) { return ToolResult::text('Event updated successfully.'); } return ToolResult::error('Failed to update event.'); } }