create_event
Add a single non-recurring event to a selected Nextcloud calendar over CalDAV by supplying a calendar ID and fields for title, start, and end.
Instructions
Create one non-recurring event. Load the full input schema first. Arguments: {calendar_id, fields}; put title/start/end inside fields. Timed events: set fields.timezone explicitly and use local ISO datetimes with offsets matching that IANA zone on the requested date. UTC Z/+00:00 timestamps need timezone=UTC, not another zone. End must be later than start. All-day: all_day=true, YYYY-MM-DD start/end, exclusive end and no timezone. For ambiguous daylight-saving times use UTC timestamps with UTC. Optional description and location; attendees, reminders and extra keys are unsupported. Schema examples are generic format examples; use requested dates and returned IDs. On INVALID_INPUT inspect the schema and fix arguments before another attempt; do not blindly retry. On UNKNOWN_WRITE_OUTCOME read the calendar before attempting another create.
Example tool call
This call uses example arguments supplied in the tool’s input schema.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"fields": {
"end": "2025-07-01T10:15:00+02:00",
"start": "2025-07-01T10:00:00+02:00",
"title": "Example event",
"timezone": "Europe/Berlin"
},
"calendar_id": "<calendar_id from list_calendars>"
},
"name": "create_event"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| fields | Yes | Nested event properties; title/start/end are required. Examples show format only: substitute the requested dates and returned calendar_id. | |
| calendar_id | Yes | Opaque calendar_id returned by list_calendars; never a name or URL. |