Methodology

How KalendarKid works

A factual explanation of how KalendarKid reads schedules, extracts events, and creates them in Google Calendar.

What KalendarKid does

KalendarKid converts unstructured schedule documents — forwarded emails, PDFs, photos of paper schedules, or scanned images — into structured Google Calendar events. The process has four stages:

  1. Forward or upload — the user forwards a schedule email to kidsync@outcome.work or uploads a PDF or photo. Files are stored in encrypted cloud storage (Supabase) for up to 7 days.
  2. AI extraction — the document is sent to Claude AI (Anthropic's multimodal model) which reads it visually and returns structured event data: title, date, time, location, and confidence scores.
  3. Human review — every extracted event appears on a review screen. The user can edit any field, uncheck events they don't want, and flag uncertain dates for correction before anything is created.
  4. Calendar creation — confirmed events are created via the Google Calendar API using the user's OAuth-authorized account. KalendarKid never stores calendar credentials.

What the AI can read

KalendarKid uses Claude's vision capabilities, which means it reads documents the same way a human would — visually — rather than relying on embedded text metadata. This means it works on:

  • Forwarded emails (team announcements, school newsletters, season schedules)
  • Native PDF text (exported from Word, Google Docs, district websites)
  • Scanned PDFs and image-based PDFs
  • Phone photos of printed schedules (including crumpled or angled paper)
  • Multi-column calendar grid layouts
  • Tables with game dates, times, and locations
  • Schedules with recurring patterns (e.g., "practice every Tuesday at 5pm")

The AI returns a confidence score for each extracted field (title, date, time). Events where confidence is below a threshold are flagged in the review UI so the user knows to double-check them.

What you review before anything is added

Nothing is added to your Google Calendar without your review. After extraction, every event appears on a review screen where you can:

  • Edit the event title, date, start time, end time, and location
  • Uncheck individual events you don't want added
  • See a warning flag on events where the AI was uncertain
  • Toggle AM/PM on events where the schedule didn't specify
  • Correct the year on events where only a month/day was listed
  • Add attendee email addresses to invite a co-parent to all events

Only after you tap “Add to Google Calendar” are any events created. The review step is not skippable.

Google Calendar integration

KalendarKid connects to Google Calendar using OAuth 2.0 — the same standard used by apps like Fantastical, Spark, and Any.do. When you sign in:

  • Google asks you to grant KalendarKid permission to manage your calendars
  • KalendarKid uses two granular scopes: calendar.events (create and view events) and calendar.calendarlist.readonly (see your list of calendars) — it cannot delete or share your calendars
  • You can choose which calendar to add events to — primary, a family shared calendar, or any other calendar in your account
  • You can revoke access at any time in your Google account settings at myaccount.google.com/permissions

Events are created via the Google Calendar API events.insert method. Duplicate detection runs before creation — if an event with the same title and start time already exists, it is skipped.

Privacy and data handling

KalendarKid is operated by Outcome.work LLC. Our data practices are straightforward:

  • Uploaded files (PDFs and photos) are stored for 7 days, then permanently deleted
  • We do not use your documents to train AI models
  • Extracted event data is stored so you can view your import history
  • We never sell your data to third parties
  • Google OAuth tokens are stored encrypted and used only to create calendar events
  • You can request deletion of your account and all data at any time

See the full privacy policy for complete details.

Accuracy and limitations

KalendarKid is accurate on well-formatted schedules. There are situations where it may miss events or require more review:

  • Very low-resolution or heavily blurred photos may miss some events
  • Handwritten schedules work but have higher error rates than printed ones
  • Dates listed without a year are inferred (and flagged for review)
  • Highly complex multi-page PDFs may take longer to process
  • Times without AM/PM are flagged for the user to resolve

The review step exists precisely because AI extraction is not perfect. You should always review extracted events before adding them to your calendar.