CalEvents for agents

Public, read-only UC Berkeley campus event discovery. No auth. No write APIs.

Start here

Data

URL workspace

Humans and agents share the same query string: ?q, ?date (today / tomorrow / week / upcoming), ?category, ?topic, ?source, ?event. Read valid topic slugs from events.json.topic_vocabulary.topics.

Browser WebMCP tools include get_ui_state, apply_ui_state, and build_calevents_url. apply_ui_state replaces the whole view unless you pass mode: "merge". Pass event: null to close the detail panel. Read view from get_ui_state to see what the page shows, and read it again while view.pending is true. A merge that races a visitor's change returns applied: false, so read the state and retry. Chip dismissal is search-only: pass dismiss to search_berkeley_events. The page clears dismissed chips whenever its URL changes. Search inputs such as startDate, endDate, and limit have no URL form.

WebMCP tools

These run only in a browser tab on the homepage, through navigator.modelContext. An unknown category, source, topic, or date preset is an error, and so is a date that is not YYYY-MM-DD.

Prompts

The MCP server card names four prompts:

Privacy

Recent searches stay in the visitor's browser storage. No tool or file exposes them to agents, and that is on purpose.

CRUD limits

Events and feed status are read-only. There is no create, update, or delete for campus events through CalEvents. Calendar export and directions URLs are derived reads.