Skip to content

nodesagar/parsecal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“… ParseCal

Turn PDFs, images, and text into calendar events β€” powered by AI.

Ever received a class timetable as a PDF and wished it would just appear in your calendar? Yeah, me too. That's why I built ParseCal.

Drop in any schedule β€” a university timetable, conference agenda, meeting list, or just some messy text β€” and let AI do the heavy lifting. Review the extracted events, tweak what you need, and push them straight to Google Calendar. Done.


✨ Features

  • πŸ“„ Multi-format input β€” Upload PDFs, images, or paste plain text
  • πŸ€– AI-powered parsing β€” Gemini (primary), OpenAI, and Claude with automatic fallback
  • ✏️ Event review & editing β€” Edit titles, dates, times, location, description, and recurrence rules before pushing
  • πŸ“† Google Calendar push β€” OAuth2-based integration to push events directly
  • πŸ“₯ ICS export β€” Download .ics files for any calendar app
  • πŸ” Session management β€” Search, filter by status, multi-select, and bulk delete
  • 🏷️ Auto-generated titles β€” Session names derived from filenames or content
  • 🚦 Rate limiting β€” Per-user, per-IP, and global daily limits
  • πŸ” Auth β€” Supabase-based email authentication

πŸ› οΈ Tech Stack

Layer Tech
Framework Next.js 16 (App Router)
Language TypeScript
Styling Tailwind CSS 4
Auth & DB Supabase (PostgreSQL, Auth, Storage)
AI Google Gemini, OpenAI, Anthropic Claude
Calendar Google Calendar API, ical-generator
Validation Zod
Icons Lucide React

πŸš€ Getting Started

Prerequisites

  • Node.js 18+
  • A Supabase project
  • At least one AI provider API key (Gemini recommended)
  • Google Cloud project with Calendar API enabled (for push)

1. Clone & install

git clone https://github.com/nodesagar/parsecal.git
cd parsecal
npm install

2. Environment variables

Create a .env.local file:

# Supabase
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_anon_key

# AI Providers (at least one required)
GEMINI_API_KEY=your_gemini_key
OPENAI_API_KEY=your_openai_key
ANTHROPIC_API_KEY=your_anthropic_key

# Google Calendar OAuth
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
GOOGLE_REDIRECT_URI=http://localhost:3000/api/auth/calendar/google/callback

3. Database setup

Run the migrations in your Supabase SQL Editor:

-- Run the contents of:
-- supabase/migrations/001_initial_schema.sql
-- supabase/migrations/002_add_session_title.sql

4. Run

npm run dev

Open http://localhost:3000.

πŸ“ Project Structure

src/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ (auth)/           # Login, signup, auth callback
β”‚   β”œβ”€β”€ (protected)/      # Dashboard, parse review, settings
β”‚   └── api/              # Parse, calendar push/export, auth
β”œβ”€β”€ components/
β”‚   └── dashboard/        # Session list (search, filters, multi-select)
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ ai/               # Provider abstraction (Gemini, OpenAI, Claude)
β”‚   β”œβ”€β”€ calendar/          # Google Calendar integration
β”‚   └── supabase/          # Client, server, middleware helpers
└── types/                 # TypeScript types

🧠 How It Works

  1. Upload a PDF, image, or paste text on the parse page
  2. AI extracts structured events (title, date, time, location, recurrence)
  3. Review & edit events β€” adjust details, add custom recurrence rules
  4. Push to Google Calendar or export as .ics

πŸ’‘ Why I Built This

I kept getting schedules in formats that were anything but calendar-friendly β€” PDFs from university, event flyers, text dumps from group chats. Manually creating each event felt like a crime against productivity. So I built a tool to do it for me. If it saves you even 10 minutes, it was worth it.


πŸ“¬ Let's Connect!

If you like this project or want to chat about web dev, AI, or side projects β€” reach out!


Built with ❀️ and β˜• by Sagar

If you found this project cool, consider giving it a ⭐!

About

πŸ“… AI-powered schedule parser β€” turn PDFs, images & text into calendar events

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors