pub struct CalendarTool { /* private fields */ }Expand description
Agent tool for calendar event management.
Wraps the CalendarApi domain. Allows agents
to create, update, delete, list, get, search events and query free-busy slots.
§Operations
| Op | Description | Required params | Optional params |
|---|---|---|---|
create | Create a new event | title, start, end | all_day, description, location, repeat, reminder_minutes |
update | Update an existing event | uid | title, start, end, all_day, description, location, repeat, reminder_minutes |
delete | Delete an event | uid | — |
list | List events in range | from, to | — |
get | Get a single event | uid | — |
search | Full-text search events | query | — |
freebusy | Free/busy slots in range | from, to | — |
Implementations§
Source§impl CalendarTool
impl CalendarTool
Sourcepub fn try_from_kernel(kernel: &KernelHandle) -> Option<Self>
pub fn try_from_kernel(kernel: &KernelHandle) -> Option<Self>
Create a new CalendarTool from a KernelHandle.
Returns None if calendar is not configured.
Sourcepub fn from_kernel(kernel: &KernelHandle) -> Self
pub fn from_kernel(kernel: &KernelHandle) -> Self
Create a new CalendarTool from a KernelHandle (required).
Panics if calendar is not configured. Use [try_from_kernel] for
the optional variant.
Trait Implementations§
Source§impl AgentTool for CalendarTool
impl AgentTool for CalendarTool
Source§fn description(&self) -> &'static str
fn description(&self) -> &'static str
Description for the model
Source§fn parameters_schema(&self) -> Value
fn parameters_schema(&self) -> Value
JSON Schema for parameters
Source§fn execute<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_tool_call_id: &'life1 str,
params: Value,
_signal: Option<Receiver<()>>,
_ctx: &'life2 ToolContext,
) -> Pin<Box<dyn Future<Output = Result<AgentToolResult, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn execute<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
_tool_call_id: &'life1 str,
params: Value,
_signal: Option<Receiver<()>>,
_ctx: &'life2 ToolContext,
) -> Pin<Box<dyn Future<Output = Result<AgentToolResult, String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Execute the tool with the given tool call ID and parameters. Read more
Source§fn essential(&self) -> bool
fn essential(&self) -> bool
Whether this tool is essential (cannot be disabled).
Essential tools: read, write, edit, bash, grep, find, ls
Optional tools: web_search, github, subagent, etc.
Source§fn on_progress(&self, _callback: Arc<dyn Fn(String) + Send + Sync>)
fn on_progress(&self, _callback: Arc<dyn Fn(String) + Send + Sync>)
Called with progress updates during execution.
Tools can override this to emit streaming updates.
Source§fn on_browse_progress(
&self,
_callback: Arc<dyn Fn(BrowseProgress) + Send + Sync>,
)
fn on_browse_progress( &self, _callback: Arc<dyn Fn(BrowseProgress) + Send + Sync>, )
Structured browse progress callback for browser tool context enrichment.
Default implementation is no-op. Only browse tools override this to
register a callback that enriches
ToolCallContext with structured
data from BrowseProgress events.Source§fn render_call(&self, _params: &Value) -> Option<RenderOutput>
fn render_call(&self, _params: &Value) -> Option<RenderOutput>
Custom rendering for tool call (TUI visualization).
Return None to use the default tool_renderer.rs formatter.
Source§fn render_result(&self, _result: &AgentToolResult) -> Option<RenderOutput>
fn render_result(&self, _result: &AgentToolResult) -> Option<RenderOutput>
Custom rendering for tool result (TUI visualization).
Return None to use the default tool_renderer.rs formatter.
Source§fn execution_mode(&self) -> ToolExecutionMode
fn execution_mode(&self) -> ToolExecutionMode
Execution mode for parallel safety.
Defaults to ParallelSafe. Override for file-mutating or sequential tools.
Source§fn current_tab_id(&self) -> Option<Uuid>
fn current_tab_id(&self) -> Option<Uuid>
Return the current active tab ID, if this tool manages browser tabs.
Defaults to
None. Browser tools override this to return the tab ID
of the currently-open tab during execution, so the agent loop can
populate ToolExecutionUpdate.tab_id.Source§fn set_tab_id_slot(&self, _slot: Arc<Mutex<RawMutex, Option<Uuid>>>)
fn set_tab_id_slot(&self, _slot: Arc<Mutex<RawMutex, Option<Uuid>>>)
Receive a shared slot where the tool can write the current tab ID.
The agent loop creates the slot and passes it before
on_progress;
the tool writes Some(tab_id) when it opens a tab and None when
it closes it. Defaults to a no-op — only tab-aware tools override.Source§fn to_definition(&self) -> ToolDefinition
fn to_definition(&self) -> ToolDefinition
Convert to ToolDefinition
Auto Trait Implementations§
impl !RefUnwindSafe for CalendarTool
impl !UnwindSafe for CalendarTool
impl Freeze for CalendarTool
impl Send for CalendarTool
impl Sync for CalendarTool
impl Unpin for CalendarTool
impl UnsafeUnpin for CalendarTool
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more