You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Accept rrule as alias for recurrence, surface timezone in responses
Addresses user feedback:
- Accept `rrule` as alias for `recurrence` in POST/PATCH events,
since rrule is the RFC 5545 term and more intuitive. If both are
sent, `recurrence` takes precedence.
- Surface calendar timezone in GET /events and GET /upcoming response
envelopes so agents can convert UTC times without extra API calls.
- Link full API docs from quickstart page for better discoverability.
- Document the alias in HTML docs, machine-readable manual, and spec.
- 5 new tests (103 total, all passing).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CHANGELOG.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,8 +10,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
10
10
-**All-day events** — events can now be created with `all_day: true` and date-only `start`/`end` in `YYYY-MM-DD` format. End date is inclusive (e.g. `start: "2025-03-15", end: "2025-03-15"` = one-day event). Supported across the full stack: API CRUD, recurring events, inbound email detection (VALUE=DATE), iCal feeds (DTSTART;VALUE=DATE), plain text view, MCP tools, and documentation.
11
11
-**`caldave-mcp` npm package** — standalone MCP server published as `caldave-mcp` on npm. Run with `npx caldave-mcp` with `CALDAVE_API_KEY` set.
12
12
13
+
### Changed
14
+
-**`rrule` accepted as alias for `recurrence`** — POST/PATCH event endpoints now accept either `rrule` or `recurrence` for the recurrence rule field. `rrule` is the RFC 5545 term and more intuitive for most users.
15
+
-**Timezone in event list responses** — `GET /events` and `GET /upcoming` now include a `timezone` field in the response envelope when the calendar has a timezone set, making it easier for agents to convert UTC times.
16
+
-**Quickstart links to API docs** — the Quick Start page now prominently links to the full API reference to help users find field names and parameters.
17
+
13
18
### Fixed
14
-
-**Unknown field rejection** — POST/PATCH endpoints for events and calendars now return 400 with a list of unknown fields instead of silently ignoring them (e.g. sending `rrule` instead of `recurrence` now errors)
19
+
-**Unknown field rejection** — POST/PATCH endpoints for events and calendars now return 400 with a list of unknown fields instead of silently ignoring them
15
20
-**Inbound REQUEST after CANCEL** — when an organiser moves or re-sends an invite that was previously cancelled, the event is now un-cancelled (recurring events reset to `recurring` with rematerialized instances; non-recurring events reset to `tentative`)
16
21
-**Calendar email domain** — calendar emails now correctly use `@invite.caldave.ai` (Postmark inbound domain) instead of `@caldave.ai`
17
22
-**MCP server instructions** — the MCP server now sends a detailed `instructions` string during initialization, giving AI agents full context about CalDave's workflow, inbound email, recurring events, metadata, and tool usage guidance
<div class="param"><span class="param-name">location <span class="param-opt">optional</span></span><span class="param-desc">Free text or URL</span></div>
Copy file name to clipboardExpand all lines: src/routes/quickstart.js
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -70,7 +70,7 @@ router.get('/', (req, res) => {
70
70
<body>
71
71
<div class="container">
72
72
<h1>Quick Start <a href="/">← Home</a></h1>
73
-
<p class="subtitle">Set up your agent and calendar, then start adding events.</p>
73
+
<p class="subtitle">Set up your agent and calendar, then start adding events. Looking for field names and parameters? <a href="/docs" style="color:#60a5fa">Full API reference →</a></p>
0 commit comments