calendar_add
Schedule a future one-time or recurring event that either re-invokes the agent with a prompt or publishes prepared content through a specified tool when it fires.
Instructions
Schedule a new calendar event that fires once or on a recurrence. Two kinds: 'task' re-invokes the agent with prompt when it fires — write the prompt as a complete, self-contained instruction, since the agent has no memory of this call when it runs. 'post' publishes prepared content through a named tool with no model call in the loop — requires content, channel, and publish_tool. Exactly ONE of at (a one-shot ISO-8601 timestamp, which must be in the future) or rrule (an RFC 5545 recurrence rule) is required — never both, never neither. channel is free text, not a router: it is a hint the tool named in publish_tool reads to decide where to post, so word it the way that tool expects, never a fixed enum. publish_tool must name a tool the caller can actually call right now — a currently-connected tool, never invented or assumed; the event hard-fails at fire time if the named tool is not connected. media is an optional list of local file paths and/or URLs to publish alongside content. timezone is an IANA name (e.g. 'America/New_York') the schedule is interpreted in.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | One-shot fire time, ISO-8601 (e.g. '2026-09-01T14:30:00+05:30'). Must be in the future. Exactly one of `at` or `rrule` is required — never both, never neither. | |
| kind | Yes | Which kind of event this is. 'task' re-invokes the agent with `prompt` when it fires; 'post' publishes `content` via `publish_tool` with no model call in the loop. Determines which other fields are required — see their descriptions. | |
| media | No | Optional media to publish alongside `content` — a list of local file paths and/or URLs. | |
| rrule | No | Recurrence rule, RFC 5545 (e.g. 'FREQ=WEEKLY;BYDAY=MO,WE,FR;BYHOUR=9'), for an event that fires repeatedly. Exactly one of `at` or `rrule` is required — never both, never neither. | |
| title | Yes | Short human-readable label for the event, shown in calendar listings. | |
| prompt | No | REQUIRED when kind='task'. The instruction the agent is re-invoked with when the event fires — write it as a complete, self-contained instruction, since the agent has no memory of this call at fire time. | |
| channel | No | REQUIRED when kind='post'. Free text naming where to publish (e.g. 'LinkedIn company page', 'Instagram @brand') — a hint the tool named in `publish_tool` reads to decide where to post. This is NOT a routing enum: word it however `publish_tool` expects. | |
| content | No | REQUIRED when kind='post'. The exact prepared text to publish. | |
| timezone | No | IANA timezone name (e.g. 'America/New_York', 'Asia/Kolkata') that `at` or `rrule` is interpreted in. | |
| publish_tool | No | REQUIRED when kind='post'. The exact name of a tool the caller can currently call to publish (e.g. 'linkedin_post'). Must be a real, currently-connected tool — never guessed or invented — since the event hard-fails at fire time if the named tool isn't connected. |