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
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"