{"ok":true,"site":{"host":"cal-events.com","url":"https://cal-events.com/","type":"live","desc":"Discover upcoming events at UC Berkeley. Find lectures, performances, sports games, workshops, and more across all campus schools and departments. Updated daily.","tools":[{"name":"search_berkeley_events","kind":"answer","impl":"imperative","description":"Search upcoming UC Berkeley campus events using the same ranked relevance engine as the CalEvents UI (search-index tokens, synonym expansion, intent chips, fuzzy fallback). Optional category/topic/source/date filters match the UI. Topic slugs come from events.json.topic_vocabulary.topics. Prefer this for discovery; use get_event_by_id for a single known id.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language or keyword query. Uses the website ranked search path when length is at least 2 characters."},"datePreset":{"type":"string","enum":["today","tomorrow","week","upcoming"],"description":"Optional Pacific-time date bucket. Explicit startDate/endDate override the matching bound."},"category":{"type":"string","enum":["Academic","Arts","Sports","Science & Tech","Student Life","Entrepreneurship"],"description":"Optional category filter (primary tag), same as the UI category control."},"topic":{"type":"string","description":"Optional published topic slug. Valid slugs are listed in events.json.topic_vocabulary.topics; do not assume a fixed enum."},"source":{"type":"string","description":"Optional source id: livewhale, callink, cal_performances, calbears, bampfa, haas, berkeley_law, simons, luma, begin, ai_risk, brsl, or cltc."},"startDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Optional inclusive Pacific date lower bound in YYYY-MM-DD. Defaults to today, as in the UI. A window that starts today leaves out events whose end_time has passed."},"endDate":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Optional inclusive Pacific date upper bound in YYYY-MM-DD."},"limit":{"type":"integer","minimum":1,"maximum":50,"default":10}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_event_by_id","kind":"answer","impl":"imperative","description":"Fetch a single CalEvents event by id (same id as ?event=<id>). Returns the event plus directionsUrl, googleCalendarUrl, and a CalEvents permalink when available.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The event id to look up."}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"generate_event_ics","kind":"act","impl":"imperative","description":"Generate an RFC 5545 iCalendar (.ics) string for a single CalEvents event by id. Times use America/Los_Angeles.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"The event id to export."}},"required":["id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_cal_events_feed_status","kind":"answer","impl":"imperative","description":"Inspect CalEvents source freshness, ingestion status, fallback usage, and data-quality state.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_ui_state","kind":"answer","impl":"imperative","description":"Read the current CalEvents UI workspace from the browser URL: filters (q/date/category/topic/source), selected event id, and optional feed freshness from status.json. Topic slugs come from events.json.topic_vocabulary.topics.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"includeFeedStatus":{"type":"boolean","description":"When true, also fetch status.json for freshness fields. Defaults to false."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"build_calevents_url","kind":"act","impl":"imperative","description":"Build a CalEvents deep-link URL from query/date/category/topic/source/event without changing the open page. Query params: q, date, category, topic, source, event. Topic slugs come from events.json.topic_vocabulary.topics.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"q":{"type":"string","description":"Search query (?q=)."},"query":{"type":"string","description":"Alias for q."},"date":{"type":"string","enum":["today","tomorrow","week","upcoming"],"description":"Date bucket (?date=)."},"datePreset":{"type":"string","enum":["today","tomorrow","week","upcoming"],"description":"Alias for date."},"category":{"type":"string","description":"Category or \"All\"."},"source":{"type":"string","description":"Source id or \"All\"."},"topic":{"type":"string","description":"Published topic slug from events.json.topic_vocabulary."},"event":{"type":"string","description":"Selected event id (?event=)."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"apply_ui_state","kind":"act","impl":"imperative","description":"Update the open CalEvents page to match shared URL workspace state (q/date/category/topic/source/event). Topic slugs come from events.json.topic_vocabulary.topics. The React UI syncs via history + popstate.","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"q":{"type":"string"},"query":{"type":"string"},"date":{"type":"string","enum":["today","tomorrow","week","upcoming"]},"datePreset":{"type":"string","enum":["today","tomorrow","week","upcoming"]},"category":{"type":"string"},"source":{"type":"string"},"topic":{"type":"string","description":"Published topic slug from events.json.topic_vocabulary."},"event":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]},{"name":"get_event_directions","kind":"answer","impl":"imperative","description":"Return a Google Maps directions/search URL for an event location, or null for online/empty locations.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Event id."},"location":{"type":"string","description":"Optional raw location text when id is unknown."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/"]}],"category":"Health & Education","apiSurface":"spec","toolCount":8}}