google_calendars runtime config key
with a comma-separated list of calendar IDs to query multiple calendars
at once.
Prerequisites
- Google account connected (see Google integration setup)
- Authenticated via
/google-auth
Setup
No additional setup is required. Once you’ve completed the Google integration setup, Calendar is ready to use.Usage
- CLI
- Agent
The Shows events for the current day across every configured calendar. Each
line displays the event ID, date, time range, and title:When more than one calendar is configured, events from all calendars are
merged and sorted client-side, and each line is tagged with its source
calendar ID in brackets — for example Shows events for the next 7 days by default. Use
Displays detailed information including title, time, location, description,
link, attendees (by email), status, and event ID.Pass
Times without a timezone are treated as the configured timezone (At least one of Permanently deletes the event. Pass Lists every calendar your Google account can access, showing the calendar
ID and its display name:Use this output to pick IDs for the
ollim-bot cal subcommand provides seven operations.List today’s events
[primary] or [work@example.com].Pass --calendar <id> to query a single calendar instead of all configured ones:List upcoming events
--days to change the window:| Argument | Required | Default | Description |
|---|---|---|---|
--days | No | 7 | Number of days to look ahead |
--calendar | No | All configured | Calendar ID to query |
Show event details
--calendar <id> when the event lives on a calendar other than the
first one you’ve configured. Defaults to the first entry of google_calendars.Add an event
| Argument | Required | Description |
|---|---|---|
summary (positional) | Yes | Event title |
--start | Yes | Start time in YYYY-MM-DDTHH:MM format |
--end | Yes | End time in YYYY-MM-DDTHH:MM format |
--description | No | Event description |
--calendar | No | Calendar ID — defaults to the first configured calendar |
OLLIM_TIMEZONE).Update an event
--summary, --start, --end, or --description must
be provided. --calendar <id> targets a specific calendar; otherwise the
first configured calendar is used.Delete an event
--calendar <id> when the event lives
on a calendar other than the first configured one.List available calendars
google_calendars config key.Configuring which calendars to query
Calendar selection is controlled by thegoogle_calendars runtime config
key. It accepts a comma-separated list of calendar IDs — defaults to
primary.
| Value | Behavior |
|---|---|
primary (default) | Queries only your primary calendar |
primary,work@example.com | Queries both calendars; events are merged and sorted client-side |
family12345@group.calendar.google.com | Queries that one calendar |
add, update, delete, show), the first
entry in google_calendars is used when --calendar is not provided.
Run ollim-bot cal calendars to discover the IDs available on your
account. See the configuration reference
for how to inspect and change runtime config keys.
A 404 on an individual calendar (typo, revoked access) is logged as
(calendar '<id>' not found — skipped) and the command continues with
the remaining calendars.Developer reference: API helpers
Developer reference: API helpers
One function is exported from
This is called via
google/calendar.py for use by the button handler in views.py:| Function | Signature | Returns |
|---|---|---|
delete_event | delete_event(event_id: str, calendar_id: str = "primary") -> str | Event summary |
asyncio.to_thread in the button handler to avoid
blocking the event loop. The button’s action string encodes the calendar
ID as event_del:<calendar_id>/<event_id> — the legacy
event_del:<event_id> form (no calendar ID) still works and defaults to
primary for backward compatibility.Troubleshooting
Calendar commands return an auth error
Calendar commands return an auth error
Your Google connection may have expired or been revoked. The bot
detects this automatically and prompts you to reconnect — run
/google-auth to re-authenticate.How do I find an event ID?
How do I find an event ID?
Event IDs are displayed as the first column in
ollim-bot cal today and
ollim-bot cal upcoming output. When using embed buttons, the agent
handles this automatically.How do I find a calendar ID?
How do I find a calendar ID?
Run
ollim-bot cal calendars to list every calendar your Google account
can access, with its ID and display name. The ID is what you pass to
--calendar and to the google_calendars config key.Times show in the wrong timezone
Times show in the wrong timezone
All times are handled in the configured timezone (
OLLIM_TIMEZONE,
defaults to auto-detected system timezone with a UTC fallback). Times
you enter without a timezone are assumed to be in this timezone.Next steps
Google Tasks
Manage your task list through similar CLI and agent interactions.
Google integration
Shared OAuth setup and all available Google services.
Embeds & buttons
How the agent builds Discord embeds with action buttons.
CLI reference
Full reference for all ollim-bot CLI subcommands.
