cookbook · personal · calendar-summary
Recipe · personal

Your week, in one paragraph + the conflicts.

A local .kolm file that reads your iCal/Google Calendar events for a 7-day window and returns (summary, conflicts, prep_checklist, total_focus_hours). Trained on 200 of your past weeks tagged with what actually mattered. Verifier rejects any conflict it can't trace to overlapping event start/end pairs in the input.

base modelphi-3-mini-4k
gold pairs200 (140 train / 60 eval)
k-score floor0.82
artifact size2.1 GB
compile time~28 min
spec sourcegrounded extraction

What this recipe does

Most calendar AIs hallucinate meetings or quietly miss a back-to-back. This one doesn't, because the verifier walks the events: every "conflict" cited in the output must trace to two events in the input whose intervals overlap, and the total_focus_hours number must equal the sum of unscheduled blocks of ≥45 minutes.

Runs entirely on-device. Your calendar export never leaves your laptop.

The spec

{
  "output_kind": "json",
  "schema": {
    "required": ["summary", "conflicts", "prep_checklist", "total_focus_hours"],
    "properties": {
      "summary": { "type": "string", "maxLength": 600 },
      "conflicts": { "type": "array", "items": {
        "required": ["a", "b", "overlap_minutes"],
        "properties": { "a": {"type":"string"}, "b": {"type":"string"}, "overlap_minutes": {"type":"integer"} }
      } },
      "prep_checklist": { "type": "array", "items": {"type":"string"}, "maxItems": 8 },
      "total_focus_hours": { "type": "number" }
    }
  },
  "verifier": {
    "conflicts_must_overlap_in_input": true,
    "focus_hours_must_match_gaps": true,
    "summary_must_cite_real_events": true
  }
}

Compile

kolm compile "weekly calendar summary with grounded conflict detection" \
  --base phi-3-mini-4k \
  --pairs ~/.kolm/calendar-pairs.jsonl \
  --verifier conflicts-grounded,focus-hours-arithmetic \
  --k-floor 0.82 \
  --output calendar-summary.kolm

ok wrote calendar-summary.kolm
   k_score=0.86  signature=hmac-sha256

K-score gate

K-score 0.86 held-out 60 weeks · conflict-precision 100% (no false positives) · conflict-recall 94% · focus-hours within ±15 min on 96% of weeks

Run-time profile

M2 MacBook
680ms
RTX 5090
180ms
iPhone 15 Pro
2.0s
CPU x86 (server)
2.6s

Deploy

# sunday-night cron — sms a recap of the week ahead:
0 19 * * 0 /usr/local/bin/kolm run calendar-summary.kolm \
  --input "$(icalbuddy eventsToday+7)" \
  | jq -r .summary | shortcuts run "Send SMS to Self"