create_event
Add all-day or timed events to a local .ics calendar file, generating UID/DTSTAMP and preserving existing content; use dry-run to preview edits.
Instructions
Add an event to a calendar file. A UID and DTSTAMP are generated.
calendar: file name from calendar_overview (a name that does not exist yet creates a new file; it must end in .ics). start: '2026-03-02' makes an ALL-DAY event (end, if given, is the LAST day, inclusive); '2026-03-02T09:30' makes a timed event, which needs end or duration_minutes. The times are read in tz and stored with that zone (a TZID reference; no VTIMEZONE block is added). rrule: e.g. 'FREQ=WEEKLY;BYDAY=MO,WE'. attendees: email addresses (recorded only; nothing is ever sent). status: TENTATIVE/CONFIRMED/CANCELLED. transp: OPAQUE (busy) or TRANSPARENT (free).
SAFETY: the original file is never modified unless in_place=true. By default the edited copy is written next to it as '.new' (or output_file, which must not exist yet). dry_run=true writes nothing and just shows the patch. Everything else in the file - other events, VTIMEZONE blocks, unknown properties - is kept byte for byte.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | UTC | |
| end | No | ||
| rrule | No | ||
| start | Yes | ||
| status | No | ||
| transp | No | ||
| dry_run | No | ||
| summary | Yes | ||
| calendar | Yes | ||
| in_place | No | ||
| location | No | ||
| attendees | No | ||
| description | No | ||
| output_file | No | ||
| duration_minutes | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |