Inspiration

Managing a calendar shouldn't require opening an app, clicking through menus, and filling out forms. We wanted something faster — just describe what you need in plain English and have it show up on your calendar instantly.

What it does

Google Calendar AutoScheduler lets you create calendar events using natural language. Type something like "Dentist appointment next Friday at 10am" and it automatically parses the time, date, and details and adds it directly to your Google Calendar. It also supports bulk importing .ics files and multiple user profiles on the same machine, each signed into their own Google account.

How we built it

We built it as a Python desktop app using Tkinter for the GUI. Google's Gemini 2.5 Flash API handles the natural language parsing, converting plain English descriptions into structured Google Calendar event JSON. The Google Calendar API handles authentication via OAuth 2.0 and event creation. User profiles are stored locally with per-user token files so multiple people can share the same installation.

Challenges we ran into

Getting Gemini to reliably output clean JSON without markdown formatting took prompt engineering. We also had to handle edge cases where Gemini would schedule events in the past — we built a safeguard that detects this and bumps the date forward automatically. Managing OAuth tokens cleanly across multiple user profiles without conflicts was another tricky piece.

Accomplishments that we're proud of

The natural language parsing works remarkably well out of the box — even vague inputs like "lunch with Sarah sometime next week" produce sensible results. The multi-user profile system feels seamless, and the .ics bulk import handles edge cases like malformed timezones and missing end times gracefully.

What we learned

Prompt engineering matters more than expected — small changes to how we instructed Gemini had a big impact on output reliability. We also learned a lot about the OAuth 2.0 flow for desktop apps and how to manage credential lifecycles without a backend server.

What's next for Google Calendar AutoScheduler

  • Email and SMS parsing — automatically schedule events from forwarded emails or texts
  • Conflict detection — warn if a new event overlaps with an existing one
  • Recurring event support via natural language ("every Monday at 9am")
  • A system tray mode so it runs silently in the background and is always one hotkey away

Built With

Share this project:

Updates