Event descriptions from Exchange/Outlook and Google Calendar are often HTML. The detail view now renders them instead of showing the raw markup. - A new converter in `domain/HtmlText.kt` turns HTML into text plus styles and links. It only kicks in when the description has real tags, so plain text with `<3` or `<https://…>` is left alone. - Kept: bold, italic, underline, strikethrough, super/subscript, monospace, line breaks, paragraphs, lists (bullets, numbers, `start`, nesting) and `<a href>` links (http(s), mailto, tel). Dropped: fonts, sizes, colours, images, and `<head>`/`<style>`/`<script>`/comments. - Each table row becomes one line with its cells joined by " · ", and empty spacer cells disappear. There's no real grid yet; one can go on top later if invites need it. - URL and phone autolinking runs on the rendered text and skips text that's already a link. - Long-press copy gives the rendered text, with each link's address in brackets after it. - Search matches the rendered text and link addresses, and snippets show clean text. - The edit form still shows the raw HTML, as discussed in the issue, so saving never breaks the formatting. The issue suggested a settings toggle that strips tags. Following the discussion in the comments, this renders HTML automatically instead, with no setting. Known limit: the SQL pre-filter in search still runs on the raw column. A word that's stored as an entity (`R&D`) or split by tags (`<b>Kick</b>off`) isn't found. I wrote my own parser instead of using `AnnotatedString.fromHtml`, because that goes through `android.text.Html`, which is stubbed in JVM unit tests, and search lives in the Compose-free domain layer. Closes #271