extensions icon indicating copy to clipboard operation
extensions copied to clipboard

[google-calendar] Add Quick Create Event command with natural language parsing

Open alexpriest opened this issue 3 weeks ago β€’ 2 comments

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 /calendarname syntax (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

alexpriest avatar Dec 23 '25 18:12 alexpriest

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-event command in google-calendar extension using Google Calendar API
  • Enhanced quick-event extension 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:78 adds diffMinutes while quick-event/useCalendar.tsx:60 subtracts 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)

greptile-apps[bot] avatar Dec 23 '25 18:12 greptile-apps[bot]

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.

raycastbot avatar Dec 23 '25 18:12 raycastbot

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!

alexpriest avatar Dec 27 '25 13:12 alexpriest