Google Calendar Assistant is an OpenHome community ability for managing Google Calendar by voice. It uses the user’s linked Google account to create, list, update, and delete events from the primary Google Calendar.Documentation Index
Fetch the complete documentation index at: https://docs.openhome.com/llms.txt
Use this file to discover all available pages before exploring further.
What It Does
- Creates Google Calendar events from natural spoken requests
- Supports quick event creation when the user gives title, time, attendees, location, or reminder details up front
- Supports step-by-step event creation for users who want guided prompts
- Adds event descriptions, attendees, locations, reminders, and optional Google Meet links
- Lists events for today, this week, this month, a specific date, a date range, or upcoming events
- Updates upcoming events by title or spoken reference
- Changes event title, description, date, start time, end time, location, attendees, reminders, or Google Meet settings
- Deletes upcoming events after confirming the matched event
- Uses the user’s OpenHome timezone when parsing spoken dates and times
- Sends Google Calendar updates to attendees when events are created, updated, or deleted
- Exits cleanly back to the normal OpenHome conversation
Supported Requests
| Request type | Example | What happens |
|---|---|---|
| Create event | Schedule a meeting tomorrow at 3 PM | Creates an event, asking only for missing details |
| Quick create | Add dentist appointment Friday at 10 AM | Extracts title and time from the request and creates quickly |
| Detailed create | Create an event step by step | Walks through title, description, time, attendees, location, Meet |
| List events | What's on my calendar today? | Reads matching events from the primary calendar |
| List range | Show my calendar from Monday to Thursday | Lists events in that date range |
| Update event | Move my team meeting to Friday at 2 PM | Finds the event and applies the requested changes |
| Add attendee | Add Sarah to the kickoff meeting | Adds a spoken email address to an event |
| Add Meet | Add a Google Meet link to my standup | Updates the event with a Meet link |
| Delete event | Delete my dentist appointment | Confirms the matched event, then deletes it |
Example Prompts
- “Google Calendar.”
- “What’s on my calendar today?”
- “Show my upcoming events.”
- “Create a calendar event.”
- “Schedule project sync tomorrow at 4 PM.”
- “Create an event step by step.”
- “Move my dentist appointment to Friday.”
- “Rename the kickoff meeting to launch review.”
- “Add a Google Meet link to my standup.”
- “Delete my team meeting.”
Example Conversation
User: What’s on my calendar today? AI: You have two events today. Standup at 9 AM, and project sync at 3 PM. User: Move the project sync to Friday at 2 PM. AI: Done. Project sync is now Friday at 2 PM. User: Add a Google Meet link to it. AI: Meet link added to project sync on Friday.
Trigger Phrases
google calendarcalendaropen calendarcheck my calendarwhat's on my calendarcreate calendar eventschedule a meetingupdate calendar eventdelete calendar event
Account Linking Guide
This ability does not use a manual Google API key. It reads a Google OAuth token from OpenHome with:- Open OpenHome.
- Go to Settings -> Linked Accounts.
- Choose Google.
- Sign in to the Google account you want to use.
- Approve the requested Google Calendar permissions.
- Return to OpenHome and enable or install the Google Calendar ability.
- Add trigger phrases such as
google calendar,check my calendar, andschedule a meeting. - Start a conversation and say one of the trigger phrases.
Data Access
| Service | Authentication | Used for |
|---|---|---|
| Google Calendar API | Linked Google account | Creating, listing, updating, and deleting primary calendar events |
| Google Meet conference data | Linked Google account | Adding Meet links when requested |
Voice Flow
- User triggers the ability.
- The ability waits for the complete trigger transcription.
- It checks for a linked Google account.
- It builds a Google Calendar API service from the OpenHome Google token.
- It reads the user’s OpenHome timezone.
- It classifies the request as
CREATE,LIST,UPDATE,DELETE, orUNKNOWN. - If the request is unclear, it says “Google Calendar ready” and asks what the user wants to do.
- The selected flow asks for any missing details, performs the calendar action, and speaks the result.
- The ability calls
resume_normal_flow()so the OpenHome agent can continue normally.
Flow Details
- Create: extracts event details from the trigger phrase when possible. If details are missing, it asks whether the user wants a quick flow or a step-by-step flow.
- Quick create: collects title, start time, end time, attendees, Google Meet preference, location, and reminder from one spoken response where possible. Missing required fields are requested one at a time.
- Detailed create: asks for title, optional description, start and end time, attendees, location, Google Meet, and reminder.
- List: supports today, this week, this month, a specific date, a date range, or the next upcoming events.
- Update: searches upcoming events in the next 30 days, matches the requested event, extracts requested changes, applies them, and allows more changes before finishing.
- Delete: searches upcoming events in the next 30 days, matches the requested event, asks for confirmation, then deletes it.
Timezone and Date Handling
The ability usesself.capability_worker.get_timezone() and LLM-assisted parsing to turn spoken phrases like tomorrow at 3 PM, next Friday, or from Monday to Thursday into calendar dates and times. It validates that newly created events are in the future and asks again if the time is missing or already passed.
Failure Handling
- If Google is not linked, the ability gives account-linking guidance and exits.
- If Google Calendar cannot be reached, the ability asks the user to try again later.
- If a date or time cannot be parsed, the ability asks the user to repeat it in a clearer form.
- If an event cannot be matched for update or delete, the ability offers nearby upcoming options or asks for the exact title.
- If the user declines a delete confirmation, the event is left unchanged.
Developer Credit
Developed by @Mmiless.View on GitHub
Source code for the
google-calendar community ability.
