calendar_create_event
Create a calendar event with a title, timezone-aware start and end times, all-day or recurring rules, tags, and location. Reuse a UID to update an existing event instead of duplicating it.
Instructions
Create a calendar event.
Args:
title: Event title.
start_datetime: YYYY-MM-DD for an all-day event, or an ISO datetime
such as 2026-07-08T11:00:00 (naive = calendar timezone) /
2026-07-08T03:00:00Z (converted to calendar timezone).
calendar_name: Calendar to create in; omit for the default calendar.
end_datetime: ISO datetime end, or for all-day events the LAST day
(inclusive). Empty = same day / no end.
all_day: Force an all-day event (times are ignored).
description: Plain text; line breaks are preserved.
location: Free text location.
categories: Comma-separated categories/tags.
timezone: IANA timezone used to interpret naive datetimes.
color: Colour name or hex.
recurrence_rule: RRULE body, with or without the RRULE: prefix.
recurrence_end_date: YYYY-MM-DD that bounds the series (writes UNTIL).
recurring: Set False to force a non-recurring event.
event_uid: Reuse an existing uid (updates that event instead of
creating a duplicate) — use it to make retries idempotent.
status, priority, privacy, attendees, url, reminder_minutes,
reminder_email, reminders: accepted for compatibility but NOT stored
by Trilium; they are echoed back in ignored_fields.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| color | No | ||
| title | Yes | ||
| status | No | ||
| all_day | No | ||
| privacy | No | ||
| location | No | ||
| priority | No | ||
| timezone | No | ||
| attendees | No | ||
| event_uid | No | ||
| recurring | No | ||
| reminders | No | ||
| categories | No | ||
| description | No | ||
| end_datetime | No | ||
| calendar_name | No | ||
| reminder_email | No | ||
| start_datetime | Yes | ||
| recurrence_rule | No | ||
| reminder_minutes | No | ||
| recurrence_end_date | No |