Search Calendar Skill
This skill teaches Claude how to intelligently search your Google Calendar with multiple search criteria and flexible natural language understanding.
When to Use This Skill
Use this skill when users ask questions like:
- "Show me events on Monday with Eddie"
- "Find all 'SnR:Huddle' meetings this week"
- "What do I have on 21 Oct 2025?"
- "List standup meetings with John Hor next week"
- "Events with sentient.io emails today"
- "When am I meeting with Wilson Ang?"
How to Search Calendars Effectively
Search Dimensions
Claude can search calendars across these dimensions:
1. By Day (Today, Tomorrow, Specific Weekdays)
- "today", "tomorrow", "yesterday"
- Weekday names: "Monday", "Tuesday", etc.
- With modifiers: "next Monday", "last Friday", "this Thursday"
2. By Date (Specific Dates)
- Multiple formats supported: "21 Oct 2025", "October 21", "2025-10-21", "21/10/2025"
- Claude can parse these flexibly
3. By Week (Calendar Weeks)
- "this week", "next week", "last week"
4. By Subject/Title (Event Names)
- Search event titles: "SnR:Huddle", "standup", "planning", "review"
- Use partial matches: "huddle" finds "SnR:Huddle"
5. By Attendee Name (People Invited)
- Search by name: "Eddie", "Wilson Ang", "John Hor"
- Use first name, last name, or abbreviations: "Ed" finds "Eddie"
- Names are fuzzy-matched to handle variations
6. By Email Address (Attendee Emails)
- Full or partial emails: "eddie@sentient.io", "sentient.io", "mani@"
- Searches attendee email list
Combining Criteria (AND Logic)
Combine multiple search dimensions to narrow results:
- Date + Attendee: "Show me events with Eddie on Monday"
- Subject + Week: "Find all 'standup' meetings this week"
- Subject + Attendee + Date: "'SnR:Huddle' with John on Friday"
- Multiple attendees: "Events with Eddie and Mani next week"
Implementation Strategy
When searching calendars, Claude should:
Parse the user query to identify:
- Time reference (day, date, week)
- Subject/keywords
- Attendee names or emails
Use Google Calendar tools to:
- Get list of calendars accessible using
list_gcal_calendars
- Retrieve events for the identified time range using
list_gcal_events
- Filter by subject, attendees, and other criteria
Enrich each event with:
- Precise start/end times in Asia/Singapore timezone (ISO 8601 format)
- Duration calculation (end_time - start_time in minutes)
- Prep time indicator based on:
- Presence of Drive links in description
- Number of attendees (>5 = needs prep)
- Attachments or conferenceData
- Full event description (no truncation)
- Conferencing details extracted from event data
Format results with:
- Event title and time (with explicit timezone)
- Duration in minutes
- Location
- Full attendee list with email addresses and RSVP status
- Link to the calendar event
- Description (if present)
- Prep needed flag
- Conference link (if present)
Apply filtering logic:
- Exclude cancelled events
- Include all other event statuses (accepted, tentative, needs action, declined)
- Limit to 50 most recent results
- Sort by start time (chronological order for briefings)
Natural Language Processing
Claude should understand:
- Flexible phrasing: "What's on my calendar?" vs "Show me my events"
- Fuzzy matching: "Wil" for "Wilson", "Ed" for "Eddie"
- Multiple date formats naturally
- Partial information: "meetings with sentient.io" or just "Eddie" without full context
- Relative time references: "this week", "next Monday", "last Friday"
Event Enrichment Logic
After retrieving events from list_gcal_events, Claude must enrich each event:
1. Duration Calculation:
duration_minutes = (end_time - start_time).total_seconds() / 60
2. Prep Time Detection - Set prep_needed: true if:
- Description contains:
docs.google.com/document, docs.google.com/spreadsheets, docs.google.com/presentation, drive.google.com
- Description contains keywords:
agenda, review, presentation, proposal, deck
- Attendee count > 5
- Event has
attachments or conferenceData fields
3. Conference Link Extraction:
- Check
conferenceData.entryPoints for video conference URLs
- Fallback: Search description for
meet.google.com, zoom.us, teams.microsoft.com links
- Return:
{type: "Google Meet", url: "https://..."}
4. Timezone Conversion:
- Convert all event times to Asia/Singapore timezone (UTC+8)
- Format as ISO 8601:
2025-10-26T14:30:00+08:00
Reference: See /mnt/skills/user/search-calendar/search_calendar_helper.py for example implementations of:
calculate_duration(start, end)
needs_prep_time(event)
extract_conference_link(event)
Examples
Example 1: Today's Events
User: "Show me my calendar for today"
Claude should:
- Get current date
- Use
list_gcal_events to retrieve events for today from all accessible calendars
- Enrich each event with duration, prep indicators, timezone conversion
- Format and display them
Example 2: Events with Specific Person
User: "Find all meetings with Eddie this week"
Claude should:
- Identify time range: this week (Monday-Sunday)
- Use
list_gcal_events to query all calendars for events in that range
- Filter for events where "Eddie" is an attendee (fuzzy match on attendee names)
- Enrich each event with duration, prep indicators, conference links
- Return matching events with full details
Example 3: Subject + Attendee + Date
User: "Show me 'SnR:Huddle' meetings with John Hor next week"
Claude should:
- Identify time range: next week
- Use
list_gcal_events to query calendars for events with "Huddle" or "SnR" in title
- Filter for events where "John Hor" is invited
- Enrich events with prep indicators, duration, conference links
- Return combined results
Example 4: Email-based Search
User: "What meetings do I have with people from sentient.io?"
Claude should:
- Use
list_gcal_events to query recent events (default: next 30 days)
- Filter for events with attendees having @sentient.io email
- Enrich events with all additional context
- Return matching events
Important Guidelines
Timezone Handling (CRITICAL for briefings)
- ALL timestamps MUST be returned in Asia/Singapore timezone (SGT / UTC+8)
- Use ISO 8601 format with explicit timezone:
2025-10-26T14:30:00+08:00
- Never return times without timezone information
- Ensure consistency across all events for time-based sorting and briefing integration
- If user is in different timezone, convert display times but maintain SGT in data structure
Time Ranges
- Day-based search: Search that specific 24-hour period
- Week-based search: Search Monday through Sunday of that calendar week
- Date-based search: Search that specific date
- No time specified: Default to next 30 days for open searches
Attendee Matching
- Use fuzzy matching for names (70% similarity threshold)
- Handle partial names and nicknames
- For emails: support partial matches (e.g., "eddie@" matches "eddie@sentient.io")
- Match against all visible attendees, not just organizer
Event Status
- Always exclude: Cancelled events
- Always include: All other statuses (Accepted, Tentative, Declined, Needs Action)
- Display attendee RSVP status when listing events
Result Limits
- Return maximum 50 events per search
- Show newest/most recent first
- Include full details: title, time, location, attendees, calendar link
Enriched Event Data (for briefing integration)
- Duration: Calculate and return event duration in minutes
- Prep Time Indicator: Set
prep_needed: true if event has:
- Description containing Drive links (docs.google.com/document, docs.google.com/spreadsheet, etc.)
- Description containing meeting agendas or action items
- Attachments (check for conferenceData or attachments in event)
- More than 5 attendees (larger meetings typically need prep)
- Descriptions: Always include event descriptions by default (don't truncate)
- Attendee Context: Include full attendee list with emails and response status
- Conferencing: Extract and return video conference links (Meet, Zoom, Teams, etc.)
Tips for Better Results
- Be specific: Include attendee names or subjects when possible to narrow results
- Use natural dates: "next Monday" works better than calculating dates manually
- Combine criteria: Rather than "all my meetings with Eddie", use "Eddie next week" for faster results
- Verify attendee names: If unsure of spelling, use nicknames - fuzzy matching handles it
Handling Edge Cases
Multiple people with similar names:
- Display all matches and ask user to clarify if needed
- Show email addresses to help distinguish
Events without attendees:
- Include in results when subject matches
- Mark "No attendees" or "Private" if applicable
All-day events:
- Include in results
- Display as "All day" rather than specific times
Recurring events:
- Return individual instances for the date range queried
- Show the full series context if available
No results:
- Explain why no events were found
- Suggest broadening the search (e.g., "try searching all week instead of just Monday")
Integration with Other Tools
This skill works with Claude's existing calendar tools and can be combined with:
- Email searches (find emails about specific meetings) - use
recent-emails with aligned timestamps
- Document searches (find prep materials) - use
work-day-files to locate meeting-related documents
- Task management (create tasks from meeting discussions)
- Daily briefings - provides the timeline anchor for time-based organization
Briefing Integration (Primary Use Case)
This skill is optimized to serve as the timeline anchor for daily briefings:
Timestamp Alignment: All events return precise start/end times in Asia/Singapore timezone matching the format used by recent-emails and work-day-files
Prep Time Intelligence: The prep_needed flag helps briefings surface:
- Events requiring document review (Drive links in description)
- Large meetings (>5 attendees)
- Events with attachments or agendas
Contextual Linking: When building briefings:
- Check if recent emails (from
recent-emails) are from meeting attendees
- Check if recent file modifications (from
work-day-files) relate to meeting topics
- Flag "action items" by correlating email subjects with event titles
Time-Based Output: Sort events chronologically to create a clear timeline that other briefing components can reference
Example Briefing Flow:
08:00 - Check work-day-files for documents modified overnight
09:00 - Morning standup (from search-calendar)
↳ prep_needed: true (has agenda doc)
↳ Related file: "Standup Notes 2025-10-26.docx" modified at 08:30
10:00 - Review recent-emails for urgent items from standup attendees
14:00 - Client meeting (from search-calendar)
↳ prep_needed: true (>5 attendees)
↳ Related email: "Q4 Proposal" from client@example.com at 13:45
Security and Privacy
- Search only calendars the user has read access to
- Don't expose private event details beyond what the user authorized
- Respect calendar sharing permissions
- Only display information the user can see
Troubleshooting
"No calendars found"
- User may need to grant calendar access
- Verify Google Calendar permissions
"No events matching"
- Try broader search terms
- Check spelling of names/subjects
- Extend date range
"Wrong person matched"
- For ambiguous names, ask user to clarify
- Use email addresses for specific identification
- Provide full names in results to avoid confusion
Quick Start for Claude
When a user asks about their calendar:
Parse their request for: time (when), subject (what), people (who)
Use calendar tools to fetch events:
list_gcal_calendars to get available calendars
list_gcal_events with appropriate date range filters
Enrich each event with:
- Duration calculation (in minutes)
- Prep time indicator (Drive links, >5 attendees, attachments, keywords)
- Conference link extraction (Meet, Zoom, Teams)
- Ensure timestamps are in Asia/Singapore timezone (SGT/UTC+8)
Apply intelligent filtering based on all criteria provided:
- Attendee name matching (fuzzy)
- Email domain filtering
- Subject/title matching
Format results clearly with:
- Event details with explicit SGT timestamps
- Duration, prep indicators, conference links
- Full attendee context with RSVP status
- Calendar event links
For unclear queries, ask clarifying questions
Reference Implementation: The search_calendar_helper.py file contains example code for the enrichment logic (duration calculation, prep time detection, conference link extraction). Claude can reference these functions when implementing the enrichment steps.
The skill is designed to be conversational - Claude should handle natural language calendar queries without requiring specific syntax or complex instructions from the user.
```
1---2name: search-calendar3description: Search Google Calendar with natural language. Find events by date, title, attendees, or email domains. Optimized for time-based briefings with explicit timestamps and rich event context. Parameters: - date (string): 'tomorrow', 'next Monday', 'Oct 25' - time_range: {start: ISO datetime, end: ISO datetime} - subject (string): Search in event titles - attendees (string[]): Filter by attendee names - emails (string[]): Filter by email/domains Returns: [{ event_id: string, title: string, start_time: ISO datetime (Asia/Singapore timezone), end_time: ISO datetime (Asia/Singapore timezone), duration_minutes: number, attendees: {name: string, email: string, response_status: string}[], location?: string, description?: string, has_attachments: boolean, prep_needed: boolean, conferencing?: {type: string, url: string} }]4---5
6# Search Calendar Skill
7
8This skill teaches Claude how to intelligently search your Google Calendar with multiple search criteria and flexible natural language understanding.
9
10## When to Use This Skill
11
12Use this skill when users ask questions like:
13- "Show me events on Monday with Eddie"
14- "Find all 'SnR:Huddle' meetings this week"
15- "What do I have on 21 Oct 2025?"
16- "List standup meetings with John Hor next week"
17- "Events with sentient.io emails today"
18- "When am I meeting with Wilson Ang?"
19
20## How to Search Calendars Effectively
21
22### Search Dimensions
23
24Claude can search calendars across these dimensions:
25
26#### 1. **By Day** (Today, Tomorrow, Specific Weekdays)
27- "today", "tomorrow", "yesterday"
28- Weekday names: "Monday", "Tuesday", etc.
29- With modifiers: "next Monday", "last Friday", "this Thursday"
30
31#### 2. **By Date** (Specific Dates)
32- Multiple formats supported: "21 Oct 2025", "October 21", "2025-10-21", "21/10/2025"
33- Claude can parse these flexibly
34
35#### 3. **By Week** (Calendar Weeks)
36- "this week", "next week", "last week"
37
38#### 4. **By Subject/Title** (Event Names)
39- Search event titles: "SnR:Huddle", "standup", "planning", "review"
40- Use partial matches: "huddle" finds "SnR:Huddle"
41
42#### 5. **By Attendee Name** (People Invited)
43- Search by name: "Eddie", "Wilson Ang", "John Hor"
44- Use first name, last name, or abbreviations: "Ed" finds "Eddie"
45- Names are fuzzy-matched to handle variations
46
47#### 6. **By Email Address** (Attendee Emails)
48- Full or partial emails: "eddie@sentient.io", "sentient.io", "mani@"
49- Searches attendee email list
50
51### Combining Criteria (AND Logic)
52
53Combine multiple search dimensions to narrow results:
54- Date + Attendee: "Show me events with Eddie on Monday"
55- Subject + Week: "Find all 'standup' meetings this week"
56- Subject + Attendee + Date: "'SnR:Huddle' with John on Friday"
57- Multiple attendees: "Events with Eddie and Mani next week"
58
59### Implementation Strategy
60
61When searching calendars, Claude should:
62
631. **Parse the user query** to identify:
64 - Time reference (day, date, week)
65 - Subject/keywords
66 - Attendee names or emails
67
682. **Use Google Calendar tools** to:
69 - Get list of calendars accessible using `list_gcal_calendars`
70 - Retrieve events for the identified time range using `list_gcal_events`
71 - Filter by subject, attendees, and other criteria
72
733. **Enrich each event** with:
74 - Precise start/end times in Asia/Singapore timezone (ISO 8601 format)
75 - Duration calculation (end_time - start_time in minutes)
76 - Prep time indicator based on:
77 * Presence of Drive links in description
78 * Number of attendees (>5 = needs prep)
79 * Attachments or conferenceData
80 - Full event description (no truncation)
81 - Conferencing details extracted from event data
82
834. **Format results** with:
84 - Event title and time (with explicit timezone)
85 - Duration in minutes
86 - Location
87 - Full attendee list with email addresses and RSVP status
88 - Link to the calendar event
89 - Description (if present)
90 - Prep needed flag
91 - Conference link (if present)
92
935. **Apply filtering logic**:
94 - Exclude cancelled events
95 - Include all other event statuses (accepted, tentative, needs action, declined)
96 - Limit to 50 most recent results
97 - Sort by start time (chronological order for briefings)
98
99### Natural Language Processing
100
101Claude should understand:
102- Flexible phrasing: "What's on my calendar?" vs "Show me my events"
103- Fuzzy matching: "Wil" for "Wilson", "Ed" for "Eddie"
104- Multiple date formats naturally
105- Partial information: "meetings with sentient.io" or just "Eddie" without full context
106- Relative time references: "this week", "next Monday", "last Friday"
107
108### Event Enrichment Logic
109
110After retrieving events from `list_gcal_events`, Claude must enrich each event:
111
112**1. Duration Calculation:**
113```
114duration_minutes = (end_time - start_time).total_seconds() / 60
115```
116
117**2. Prep Time Detection - Set `prep_needed: true` if:**
118- Description contains: `docs.google.com/document`, `docs.google.com/spreadsheets`, `docs.google.com/presentation`, `drive.google.com`
119- Description contains keywords: `agenda`, `review`, `presentation`, `proposal`, `deck`
120- Attendee count > 5
121- Event has `attachments` or `conferenceData` fields
122
123**3. Conference Link Extraction:**
124- Check `conferenceData.entryPoints` for video conference URLs
125- Fallback: Search description for `meet.google.com`, `zoom.us`, `teams.microsoft.com` links
126- Return: `{type: "Google Meet", url: "https://..."}`
127
128**4. Timezone Conversion:**
129- Convert all event times to Asia/Singapore timezone (UTC+8)
130- Format as ISO 8601: `2025-10-26T14:30:00+08:00`
131
132**Reference:** See `/mnt/skills/user/search-calendar/search_calendar_helper.py` for example implementations of:
133- `calculate_duration(start, end)`
134- `needs_prep_time(event)`
135- `extract_conference_link(event)`
136
137## Examples
138
139### Example 1: Today's Events
140**User:** "Show me my calendar for today"
141
142**Claude should:**
1431. Get current date
1442. Use `list_gcal_events` to retrieve events for today from all accessible calendars
1453. Enrich each event with duration, prep indicators, timezone conversion
1464. Format and display them
147
148### Example 2: Events with Specific Person
149**User:** "Find all meetings with Eddie this week"
150
151**Claude should:**
1521. Identify time range: this week (Monday-Sunday)
1532. Use `list_gcal_events` to query all calendars for events in that range
1543. Filter for events where "Eddie" is an attendee (fuzzy match on attendee names)
1554. Enrich each event with duration, prep indicators, conference links
1565. Return matching events with full details
157
158### Example 3: Subject + Attendee + Date
159**User:** "Show me 'SnR:Huddle' meetings with John Hor next week"
160
161**Claude should:**
1621. Identify time range: next week
1632. Use `list_gcal_events` to query calendars for events with "Huddle" or "SnR" in title
1643. Filter for events where "John Hor" is invited
1654. Enrich events with prep indicators, duration, conference links
1665. Return combined results
167
168### Example 4: Email-based Search
169**User:** "What meetings do I have with people from sentient.io?"
170
171**Claude should:**
1721. Use `list_gcal_events` to query recent events (default: next 30 days)
1732. Filter for events with attendees having @sentient.io email
1743. Enrich events with all additional context
1754. Return matching events
176
177## Important Guidelines
178
179### Timezone Handling (CRITICAL for briefings)
180- **ALL timestamps MUST be returned in Asia/Singapore timezone (SGT / UTC+8)**
181- Use ISO 8601 format with explicit timezone: `2025-10-26T14:30:00+08:00`
182- Never return times without timezone information
183- Ensure consistency across all events for time-based sorting and briefing integration
184- If user is in different timezone, convert display times but maintain SGT in data structure
185
186### Time Ranges
187- **Day-based search**: Search that specific 24-hour period
188- **Week-based search**: Search Monday through Sunday of that calendar week
189- **Date-based search**: Search that specific date
190- **No time specified**: Default to next 30 days for open searches
191
192### Attendee Matching
193- Use fuzzy matching for names (70% similarity threshold)
194- Handle partial names and nicknames
195- For emails: support partial matches (e.g., "eddie@" matches "eddie@sentient.io")
196- Match against all visible attendees, not just organizer
197
198### Event Status
199- **Always exclude**: Cancelled events
200- **Always include**: All other statuses (Accepted, Tentative, Declined, Needs Action)
201- Display attendee RSVP status when listing events
202
203### Result Limits
204- Return maximum 50 events per search
205- Show newest/most recent first
206- Include full details: title, time, location, attendees, calendar link
207
208### Enriched Event Data (for briefing integration)
209- **Duration**: Calculate and return event duration in minutes
210- **Prep Time Indicator**: Set `prep_needed: true` if event has:
211 - Description containing Drive links (docs.google.com/document, docs.google.com/spreadsheet, etc.)
212 - Description containing meeting agendas or action items
213 - Attachments (check for conferenceData or attachments in event)
214 - More than 5 attendees (larger meetings typically need prep)
215- **Descriptions**: Always include event descriptions by default (don't truncate)
216- **Attendee Context**: Include full attendee list with emails and response status
217- **Conferencing**: Extract and return video conference links (Meet, Zoom, Teams, etc.)
218
219## Tips for Better Results
220
2211. **Be specific**: Include attendee names or subjects when possible to narrow results
2222. **Use natural dates**: "next Monday" works better than calculating dates manually
2233. **Combine criteria**: Rather than "all my meetings with Eddie", use "Eddie next week" for faster results
2244. **Verify attendee names**: If unsure of spelling, use nicknames - fuzzy matching handles it
225
226## Handling Edge Cases
227
228**Multiple people with similar names:**
229- Display all matches and ask user to clarify if needed
230- Show email addresses to help distinguish
231
232**Events without attendees:**
233- Include in results when subject matches
234- Mark "No attendees" or "Private" if applicable
235
236**All-day events:**
237- Include in results
238- Display as "All day" rather than specific times
239
240**Recurring events:**
241- Return individual instances for the date range queried
242- Show the full series context if available
243
244**No results:**
245- Explain why no events were found
246- Suggest broadening the search (e.g., "try searching all week instead of just Monday")
247
248## Integration with Other Tools
249
250This skill works with Claude's existing calendar tools and can be combined with:
251- **Email searches** (find emails about specific meetings) - use `recent-emails` with aligned timestamps
252- **Document searches** (find prep materials) - use `work-day-files` to locate meeting-related documents
253- **Task management** (create tasks from meeting discussions)
254- **Daily briefings** - provides the timeline anchor for time-based organization
255
256### Briefing Integration (Primary Use Case)
257
258This skill is optimized to serve as the **timeline anchor** for daily briefings:
259
2601. **Timestamp Alignment**: All events return precise start/end times in Asia/Singapore timezone matching the format used by `recent-emails` and `work-day-files`
261
2622. **Prep Time Intelligence**: The `prep_needed` flag helps briefings surface:
263 - Events requiring document review (Drive links in description)
264 - Large meetings (>5 attendees)
265 - Events with attachments or agendas
266
2673. **Contextual Linking**: When building briefings:
268 - Check if recent emails (from `recent-emails`) are from meeting attendees
269 - Check if recent file modifications (from `work-day-files`) relate to meeting topics
270 - Flag "action items" by correlating email subjects with event titles
271
2724. **Time-Based Output**: Sort events chronologically to create a clear timeline that other briefing components can reference
273
274**Example Briefing Flow:**
275```
27608:00 - Check work-day-files for documents modified overnight
27709:00 - Morning standup (from search-calendar)
278 ↳ prep_needed: true (has agenda doc)
279 ↳ Related file: "Standup Notes 2025-10-26.docx" modified at 08:30
28010:00 - Review recent-emails for urgent items from standup attendees
28114:00 - Client meeting (from search-calendar)
282 ↳ prep_needed: true (>5 attendees)
283 ↳ Related email: "Q4 Proposal" from client@example.com at 13:45
284```
285
286## Security and Privacy
287
288- Search only calendars the user has read access to
289- Don't expose private event details beyond what the user authorized
290- Respect calendar sharing permissions
291- Only display information the user can see
292
293## Troubleshooting
294
295**"No calendars found"**
296- User may need to grant calendar access
297- Verify Google Calendar permissions
298
299**"No events matching"**
300- Try broader search terms
301- Check spelling of names/subjects
302- Extend date range
303
304**"Wrong person matched"**
305- For ambiguous names, ask user to clarify
306- Use email addresses for specific identification
307- Provide full names in results to avoid confusion
308
309---
310
311## Quick Start for Claude
312
313When a user asks about their calendar:
314
3151. **Parse their request** for: **time** (when), **subject** (what), **people** (who)
316
3172. **Use calendar tools** to fetch events:
318 - `list_gcal_calendars` to get available calendars
319 - `list_gcal_events` with appropriate date range filters
320
3213. **Enrich each event** with:
322 - Duration calculation (in minutes)
323 - Prep time indicator (Drive links, >5 attendees, attachments, keywords)
324 - Conference link extraction (Meet, Zoom, Teams)
325 - Ensure timestamps are in Asia/Singapore timezone (SGT/UTC+8)
326
3274. **Apply intelligent filtering** based on all criteria provided:
328 - Attendee name matching (fuzzy)
329 - Email domain filtering
330 - Subject/title matching
331
3325. **Format results clearly** with:
333 - Event details with explicit SGT timestamps
334 - Duration, prep indicators, conference links
335 - Full attendee context with RSVP status
336 - Calendar event links
337
3386. For unclear queries, ask clarifying questions
339
340**Reference Implementation:** The `search_calendar_helper.py` file contains example code for the enrichment logic (duration calculation, prep time detection, conference link extraction). Claude can reference these functions when implementing the enrichment steps.
341
342The skill is designed to be conversational - Claude should handle natural language calendar queries without requiring specific syntax or complex instructions from the user.
343```