[google-calendar] Add Quick Create Event command with natural language parsing
Summary
Adds a new "Quick Create Event" command that allows creating calendar events using natural language input, similar to Fantastical.
Features:
- Natural language date/time parsing (e.g., "Lunch tomorrow 12-1pm")
- Calendar selection with
/calendarnamesyntax (e.g., "Meeting /work") - Time range support ("2-3pm", "2pm-3pm")
- Timezone support ("3pm EST", "10am PT")
- Past dates auto-advance to next year
- EU time formats (14h, 14h30)
- Fuzzy calendar name matching
Demo
Type naturally and the event is parsed in real-time:
-
Lunch tomorrow 12-1pmβ Creates "Lunch" tomorrow from 12pm to 1pm -
Call with John 3pm EST /workβ Creates at 3pm Eastern on your "Work" calendar -
Team standup 9:30amβ Creates at 9:30am today (or tomorrow if past)
Test plan
- [ ] Test basic event creation with title and time
- [ ] Test time ranges (2-3pm, 2pm-3pm)
- [ ] Test timezone conversion (EST, ET, PST, PT, etc.)
- [ ] Test calendar selection with fuzzy matching
- [ ] Test past date advancement
- [ ] Test all-day events
π€ Generated with Claude Code
Greptile Summary
This PR adds natural language event creation to both the google-calendar and quick-event extensions. The implementation includes smart date parsing, timezone conversion, calendar selection via /calendarname syntax, and fuzzy matching.
Key changes:
- New
quick-create-eventcommand in google-calendar extension using Google Calendar API - Enhanced
quick-eventextension with timezone and calendar matching features - Shared parsing logic for time ranges (2-3pm), EU formats (14h30), and timezone abbreviations
- Past date auto-advancement to next year
Issues found:
- Critical timezone conversion bug:
google-calendar/quick-create-event.tsx:78addsdiffMinuteswhilequick-event/useCalendar.tsx:60subtracts it, causing inconsistent timezone handling - Missing ET/CT/MT/PT timezone abbreviations in regex patterns despite being defined in constants
Confidence Score: 2/5
- PR has a critical timezone bug that will cause incorrect event times
- The inverted timezone conversion logic between the two extensions is a critical bug that will produce incorrect event times when users specify timezones. Additionally, missing timezone abbreviations in patterns reduces functionality.
- Pay close attention to
extensions/google-calendar/src/quick-create-event.tsx- the timezone conversion logic must be fixed before merging
Important Files Changed
| Filename | Overview |
|---|---|
| extensions/google-calendar/src/quick-create-event.tsx | New quick create event command with natural language parsing; timezone conversion logic differs from quick-event extension |
| extensions/quick-event/src/useCalendar.tsx | Added timezone support, calendar matching, and past date adjustment; timezone conversion logic differs from google-calendar implementation |
| extensions/google-calendar/package.json | Added new quick-create-event command and dependencies (fuse.js, sherlockjs, nanoid) |
Thank you for your contribution! :tada:
π @thomaspaulmann @j3lte @markusjura @fabitosh @geekyed you might want to have a look.
You can use this guide to learn how to check out the Pull Request locally in order to test it.
π Quick checkout commands
BRANCH="google-calendar-quick-create"
FORK_URL="https://github.com/alexpriest/extensions.git"
EXTENSION_NAME="google-calendar"
REPO_NAME="extensions"
git clone -n --depth=1 --filter=tree:0 -b $BRANCH $FORK_URL
cd $REPO_NAME
git sparse-checkout set --no-cone "extensions/$EXTENSION_NAME"
git checkout
cd "extensions/$EXTENSION_NAME"
npm install && npm run dev
Due to our current reduced availability, the initial review may take up to 10-15 business days.
Hey teamβI spent some time making this fit my own personal workflow, I hope this is helpful to others as well. This is my first PR (!) and first time really digging in with Claude Code, so feedback very, very welcome. Thanks!