Sheet 5 of 6 · Sched · Exploded assembly
Sched
AI scheduling assistant
Specification
- Role
- Fullstack Developer
- Stack
- Next.js 16, React 19, TypeScript, Tailwind CSS 4, Better Auth, Drizzle ORM, Postgres, Google Calendar API, Google Tasks API, Gemini 2.5 Flash, Zustand
- Repos
- archived · deployed build behind Google login
- Drawn by
- Praffi Ramadhani
- Date
- 2026-05-24
- Status
- archived
- Sheet
- 5 / 6
Overview
Sched is an AI scheduling assistant for Google Calendar. Instead of dragging blocks around manually from a blank week, the user types what they need: meetings, study sessions, reminders, deadlines, routines, or schedule changes. Sched drafts the plan, shows it on the calendar, and waits for the user to review it before writing anything to Google Calendar or Google Tasks.
The problem
“Calendars are reliable at storing plans, but they are slow when the plan starts as messy intent.”
A user may know they need deep work next Monday morning, tennis tomorrow at 5, and a deadline reminder on Friday, but turning that into a clean calendar still requires manual translation.
Sched adds an intent layer on top of the calendar. Describe the week in plain language, review the draft, edit it, then accept it when it looks right.
A1 · Part 1 of 5
the web app
Type the week, review the draft, and accept what looks right. The app is Next.js App Router with thin route files and feature folders for auth, chat, calendar, inspector, and AI scheduling.
Product flow
- Connect a Google account.
- Type a scheduling request in natural language.
- Sched drafts calendar events or deadline-style tasks.
- Review the draft on day, week, or month views.
- Refine with another prompt or edit visually by dragging and resizing.
- Accept to save the final items to Google Calendar or Google Tasks.
Oct 19–25
A2 · Part 2 of 5
pending drafts
AI suggestions stay pending until the user accepts them. Zustand owns the client-side scheduling state, so chat, calendar, inspector, and pending drafts stay synchronized without forcing every interaction through a route transition.
- An inspector panel for title, time, duration, type, AI reasoning, conflict status, refine input, and accept/discard actions.
- Drag and resize interactions for draft events.
- Conflict indicators when proposed items overlap existing calendar events.
A3 – A5 · Parts 3 to 5
the server
Server-side infrastructure lives in lib/: Better Auth for Google OAuth sign-in, and Drizzle over Postgres. A timezone guard compares the browser timezone with the Google Calendar timezone.
- A3 the server Better Auth · Drizzle
- A5 Postgres via Drizzle ORM
A4 · Part 4 of 5
AI & Google
Gemini 2.5 Flash, through @google/genai, turns the request into drafts. The Google Calendar and Google Tasks clients read the week for context and save what the user accepts: timed items as events, deadline-style items as tasks.
Key technical decisions
-
Existing events are read-only.
The most important product constraint is safety. Sched never modifies existing Google Calendar events. Existing events are read-only context for scheduling, and AI-generated suggestions remain pending until the user accepts them.
Current status
Archived.
A deployed build remains available; the public entry point is the Google login screen. The app requires Google Calendar access because the core workflow depends on reading calendar context and saving accepted events or tasks.