* feat: document rrule in the manage_calendar tool schema (#1320) The create_event handler already persists `rrule` (a single event carrying an iCalendar RRULE), but the manage_calendar tool schema didn't list it, so the agent had no documented way to make a recurring event and took a roundabout path. Add `rrule?` to the create_event field list with examples (FREQ=WEEKLY;BYDAY=MO etc.) and an explicit note to create ONE event with the rule rather than looping. Covered by tests/test_calendar_rrule.py: do_manage_calendar create_event with an rrule stores one event with that recurrence; without it, the event is single. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test: restore SessionLocal via monkeypatch in #1320 rrule test (review) Per review: the test patched core.database.SessionLocal at module import and never restored it, which could leak the temp DB into later tests in the same process. Move the patch into an autouse monkeypatch fixture so it is restored after each test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -315,9 +315,10 @@ Bulk delete/archive/mark emails. Use this for "delete all those" after listing e
|
||||
{"action": "create_event", "summary": "<event title>", "dtstart": "<natural language or ISO datetime>"}
|
||||
```
|
||||
Calendar event management (CalDAV). Actions: `list_events`, `create_event`, `update_event`, `delete_event`, `list_calendars`. \
|
||||
For `create_event`: {summary, dtstart, dtend?, duration?, calendar?, location?, description?, reminder_minutes?}. \
|
||||
For `create_event`: {summary, dtstart, dtend?, duration?, calendar?, location?, description?, reminder_minutes?, rrule?}. \
|
||||
`dtstart` accepts natural language ("tomorrow at 1pm", "in 2 hours", "next monday 9am") or ISO ("2026-05-12T13:00:00"). \
|
||||
If `dtend` omitted, defaults to dtstart+1h (or +1d when `all_day: true`). \
|
||||
For a RECURRING event pass `rrule` as an iCalendar RRULE string, e.g. `"FREQ=WEEKLY;BYDAY=MO"` (every Monday), `"FREQ=DAILY;COUNT=10"`, or `"FREQ=MONTHLY;BYMONTHDAY=1"` — create ONE event with the rrule, do not loop creating many events. \
|
||||
If the user asks for a reminder/alarm before the event, pass `reminder_minutes` as an integer; do not write reminder text into the event description and do NOT also call `manage_notes` for the same reminder because calendar reminders are routed through Notes automatically. \
|
||||
`calendar` accepts a name ("Main") or short-id prefix.""",
|
||||
"create_session": "- ```create_session``` — Create a new chat. Line 1 = chat name, line 2 = model name. Use for background/parallel work.",
|
||||
|
||||
Reference in New Issue
Block a user