Skip to main content
ollim-bot provides full read/write access to your primary Google Calendar. You can list, show, add, update, and delete events through CLI commands, and the agent can present events in Discord embeds with a delete button for one-click removal.

Prerequisites

  • Google OAuth credentials configured (see Google OAuth setup)
  • Completed the initial OAuth consent flow — the calendar.events scope is included by default

Setup

No additional setup is required beyond the shared Google OAuth flow. The https://www.googleapis.com/auth/calendar.events scope is part of the default scope list in google/auth.py. Once you’ve completed the Google integration setup, Calendar is ready to use.

Usage

The ollim-bot cal subcommand provides six operations.

List today’s events

ollim-bot cal today
Shows events for the current day. Each line displays the event ID, date, time range, and title:
  abc123def  2026-02-24  09:00-10:00  Team standup
  ghi456jkl  2026-02-24  (all-day)     Project deadline

List upcoming events

ollim-bot cal upcoming
Shows events for the next 7 days by default. Use --days to change the window:
ollim-bot cal upcoming --days 14
ArgumentRequiredDefaultDescription
--daysNo7Number of days to look ahead

Show event details

ollim-bot cal show <event_id>
Displays detailed information including title, time, location, description, link, attendees (by email), status, and event ID.

Add an event

ollim-bot cal add "Team lunch" --start 2026-02-25T12:00 --end 2026-02-25T13:00 --description "At the Italian place"
ArgumentRequiredDescription
summary (positional)YesEvent title
--startYesStart time in YYYY-MM-DDTHH:MM format
--endYesEnd time in YYYY-MM-DDTHH:MM format
--descriptionNoEvent description
Naive datetimes (without timezone) are treated as the configured timezone (OLLIM_TIMEZONE).

Update an event

ollim-bot cal update <event_id> --summary "Updated title" --start 2026-02-25T13:00 --end 2026-02-25T14:00
At least one of --summary, --start, --end, or --description must be provided.

Delete an event

ollim-bot cal delete <event_id>
Permanently deletes the event from your primary calendar.
All operations use your primary calendar (calendarId: "primary"). ollim-bot does not support secondary calendars or calendar selection.

API helpers

One function is exported from google/calendar.py for use by the Discord button handler in views.py:
FunctionSignatureReturns
delete_eventdelete_event(event_id: str) -> strEvent summary
This is called via asyncio.to_thread in the button handler to avoid blocking the Discord event loop.

Troubleshooting

Your OAuth token may have expired or been revoked. Delete ~/.ollim-bot/state/token.json and run any calendar command to trigger re-authentication.
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 encodes the ID into the button action automatically.
All datetimes are handled in the configured timezone (OLLIM_TIMEZONE, defaults to system local). Naive datetime inputs are assumed to be in this timezone. The Google Calendar API stores and returns timezone-aware values.

Next steps