Skip to content

Commit 6c00b0a

Browse files
authored
Merge pull request nspady#37 from nspady/modify-recurring-events-support
Enhance event update functionality to support modification scopes for…
2 parents 60ba85d + 930e1a4 commit 6c00b0a

File tree

11 files changed

+3085
-39
lines changed

11 files changed

+3085
-39
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ This is a Model Context Protocol (MCP) server that provides integration with Goo
66

77
- **Multi-Calendar Support**: List events from multiple calendars simultaneously
88
- **Event Management**: Create, update, delete, and search calendar events
9+
- **Recurring Events**: Advanced modification scopes for recurring events (single instance, all instances, or future instances only)
910
- **Calendar Management**: List calendars and their properties
1011
- **Free/Busy Queries**: Check availability across calendars
1112

docs/architecture.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,23 @@ The `BatchRequestHandler` class provides efficient multi-calendar support throug
2222

2323
This approach significantly reduces API calls when querying multiple calendars, improving both performance and reliability.
2424

25+
## RecurringEventHelpers
26+
27+
The `RecurringEventHelpers` class provides specialized functionality for managing recurring calendar events:
28+
29+
- **Event Type Detection:** Identifies whether an event is recurring or single-occurrence
30+
- **Instance ID Formatting:** Generates proper Google Calendar instance IDs for single occurrence modifications
31+
- **Series Splitting:** Implements the complex logic for splitting recurring series with UNTIL clauses
32+
- **Duration Preservation:** Maintains event duration across timezone changes and modifications
33+
- **RRULE Processing:** Handles recurrence rule updates while preserving EXDATE and RDATE patterns
34+
35+
The `UpdateEventHandler` has been enhanced to support three modification scopes:
36+
- **Single Instance:** Modifies one occurrence using instance IDs
37+
- **All Instances:** Updates the master event (default behavior for backward compatibility)
38+
- **Future Instances:** Splits the series and creates a new recurring event from a specified date forward
39+
40+
This architecture maintains full backward compatibility while providing advanced recurring event management capabilities.
41+
2542
### How ListEventsHandler Uses BaseToolHandler
2643

2744
The `ListEventsHandler` extends the `BaseToolHandler` to inherit its common functionalities and implements multi-calendar support:

0 commit comments

Comments
 (0)