SearchEventsTool
Searches calendar events whose TITLE or DESCRIPTION contains query (SQL LIKE substring; %, _ and \ in query match literally), via ContentResolver on CalendarContract.Events, newest first. Requires READ_CALENDAR. Output: events (list of {id, title, start, end, location, description, all_day} with times formatted yyyy-MM-dd HH:mm — device timezone for timed events, UTC for all-day events, which the provider stores at UTC-midnight boundaries), count, and the echoed query, capped at limit (1–100, default 10). Recurring events appear once (their base row), not per occurrence.