I Gave AI Full Access to My Calendar — Here's My Week Now

Photo: Unsplash

AI Power User

I Gave AI Full Access to My Calendar — Here's My Week Now

What actually changes when an LLM reads every meeting on your schedule

Three months ago I wired my entire calendar — work, personal, shared family calendar, the lot — into an LLM pipeline on my Mac. Every event title, attendee list, location, and notes field. I want to be precise about what happened next, because the calendar-AI genre is full of breathless claims. The honest version: AI didn’t give me back my meetings. It gave me back the work around the meetings — the prep, the triage, the “wait, what is this call even about” overhead. That turned out to be about four hours a week, which is not nothing.

The plumbing: getting Calendar into a model

The whole system runs on two built-in pieces — Apple Shortcuts and Calendar — plus Ollama. Shortcuts has a “Find Calendar Events” action that can pull every event in a date range, with titles, times, attendees, and notes. I format those into plain text and pipe them into a local model via Ollama’s HTTP API on localhost:11434 (a “Get Contents of URL” action with a JSON body works fine; so does a “Run Shell Script” step calling ollama run).

The morning briefing shortcut runs at 7:30 via an automation. The prompt, roughly:

Here is my calendar for today. For each event: one line on
what it is and what I need to have ready. Then: total meeting
hours, the single most important event, and any gap longer
than 90 minutes I should protect for deep work.

Output lands as a notification and a note. Reading it takes 40 seconds with the first coffee. The weekly version runs Sunday evening over the next seven days and adds one more question: “Which of these meetings could plausibly be an email or an async doc? Explain why.”

That last question is where it got uncomfortable. The first Sunday it ran, the model looked at a week containing 14 hours of meetings and flagged three recurring ones — a 30-minute status sync with no agenda in the notes field, a “quick check-in” with five attendees, and a vendor call whose notes were a forwarded PDF. Its reasoning was blunt: no decision listed, no agenda, high attendee count, pure information transfer. I killed one, converted one to a shared doc, and kept the third. Two hours a week, recovered by a language model reading metadata. Humbling.

Prep notes that write themselves

The second shortcut fires manually before any external meeting. It takes the event’s attendee list and notes field, then pulls in context I select — recent Mail threads with those attendees (Shortcuts can search Mail), plus any Apple Notes whose title matches the project. All of it goes to the model with: “Draft a half-page prep note: who I’m meeting, what we last discussed, open items, and three questions I should ask.”

This is the feature I’d pay real money for, and it’s free. Before a call with a client I hadn’t spoken to since April, the prep note surfaced an unresolved pricing question from a six-week-old email thread that I had genuinely forgotten. I opened the call with it. The client assumed I had a great memory. I have a great pipeline.

For meetings I host, the same shortcut drafts an agenda from the invite context instead and pastes it back into the event notes — which has the nice second-order effect that my meetings now always have agendas, so other people’s AI tools can judge them kindly.

The privacy tiering decision

Here’s the decision that matters more than any prompt: which model gets to see the calendar. A calendar is one of the most sensitive documents you own. It encodes who you meet, when you see a doctor, where your kids are, which companies you’re quietly talking to. Attendee emails alone are a contact graph.

So I run a two-tier policy:

  • Full calendar access: local models only. Qwen2.5 14B on my Mac Studio handles every briefing and prep note. Nothing leaves the machine. On a 14B model, summarizing a day of events takes 4–6 seconds; the weekly analysis of ~40 events takes about 20.
  • Generic advice: cloud models allowed. “How should I structure a week with heavy context-switching?” contains no events and no names, so it can go to Claude or ChatGPT, which give noticeably better strategic answers.

The dividing line is simple: if the prompt contains a name, a company, or a timestamp from my real life, it stays local. A 14B model is plenty for summarization and pattern-spotting; you don’t need frontier intelligence to notice that Thursday has six back-to-back calls. One bilingual bonus for me: the local model handles my mixed Czech/English calendar without complaint — family events in Czech, work in English — and briefs me in whichever language I ask.

My week, before and after

Concretely, here’s the shape of a typical week then and now.

Before: Mornings started with 15–20 minutes of calendar archaeology — opening invites, re-reading threads, figuring out what “Sync — follow-up” meant. Meeting prep happened in the two panicked minutes before joining, or not at all. Recurring meetings accreted unexamined; my record was 19 hours of meetings in one week, of which I could defend maybe 13. Deep-work blocks existed in theory and got eaten in practice.

After: 7:30 briefing replaces the archaeology (40 seconds vs. ~15 minutes — call it an hour a week back). Prep notes before every external call (~10 minutes saved per meeting, and meetings are measurably shorter because I arrive with the open items already loaded). Sunday’s meeting-load audit keeps my weekly total around 10–11 hours instead of 14+; the “could be an email” filter killed or converted four recurring meetings in three months. And because the briefing explicitly flags 90-minute-plus gaps, I now defend two deep-work blocks per week with calendar holds the system itself suggests.

Total recovered: roughly four hours a week, mostly from prep and triage, plus the harder-to-quantify benefit of never walking into a meeting cold.

The honest part

Let me deflate the title’s implied fantasy before you build this. The AI does not attend meetings for me. It does not negotiate, decide, build trust, or notice the thing a colleague didn’t say. The meetings themselves — the actual human hour — are exactly as long and exactly as human as before. What the AI compresses is everything wrapped around that hour: remembering, preparing, summarizing, auditing. Meeting metadata work is real work, it’s most of what made my calendar feel heavier than it was, and it’s almost perfectly suited to a language model.

Two failure modes to expect. First, the model occasionally over-flags: it once recommended converting a 1:1 with a struggling teammate into “an async update,” because nothing in the metadata encoded why that meeting mattered. Metadata is not meaning; you stay the judge. Second, garbage in, garbage out — if your invites have empty notes fields, the briefings are thin. The system quietly pressured me into writing better invites, which may be its sneakiest benefit.

If you want to replicate this, the minimum viable version is one shortcut: Find Calendar Events (today) → format as text → send to a local model → ask for a briefing. Thirty minutes to build, including the time to install Ollama. Start there, run it for a week, and let the Sunday audit tell you something about your calendar you’d rather not hear. Mine did, and my week is better for it.