diff --git a/README.md b/README.md index f5a78ab..1853192 100644 --- a/README.md +++ b/README.md @@ -430,8 +430,8 @@ When calling a tool: | `list_calendars` | List accessible calendars | | `get_events` | Retrieve events with time range filtering | | `get_event` | Fetch detailed information of a single event by ID | -| `create_event` | Create events (all-day or timed) with optional Drive file attachments | -| `modify_event` | Update existing events | +| `create_event` | Create events (all-day or timed) with optional Drive file attachments and custom reminders | +| `modify_event` | Update existing events with intelligent reminder handling | | `delete_event` | Remove events | ### 📁 Google Drive ([`drive_tools.py`](gdrive/drive_tools.py)) diff --git a/gcalendar/calendar_tools.py b/gcalendar/calendar_tools.py index 9b996bd..5bca383 100644 --- a/gcalendar/calendar_tools.py +++ b/gcalendar/calendar_tools.py @@ -360,14 +360,19 @@ async def create_event( # Handle reminders if reminders is not None or not use_default_reminders: + # If custom reminders are provided, automatically disable default reminders + effective_use_default = use_default_reminders and reminders is None + reminder_data = { - "useDefault": use_default_reminders + "useDefault": effective_use_default } - if reminders is not None and not use_default_reminders: + if reminders is not None: validated_reminders = _parse_reminders_json(reminders, "create_event") if validated_reminders: reminder_data["overrides"] = validated_reminders logger.info(f"[create_event] Added {len(validated_reminders)} custom reminders") + if use_default_reminders: + logger.info("[create_event] Custom reminders provided - disabling default reminders") event_body["reminders"] = reminder_data @@ -541,7 +546,12 @@ async def modify_event( logger.warning(f"[modify_event] Could not fetch existing event for reminders: {e}") reminder_data["useDefault"] = True # Fallback to True if unable to fetch - if reminders is not None and not reminder_data.get("useDefault", False): + # If custom reminders are provided, automatically disable default reminders + if reminders is not None: + if reminder_data.get("useDefault", False): + reminder_data["useDefault"] = False + logger.info("[modify_event] Custom reminders provided - disabling default reminders") + validated_reminders = _parse_reminders_json(reminders, "modify_event") if reminders and not validated_reminders: logger.warning("[modify_event] Reminders provided but failed validation. No custom reminders will be set.")