One Calendar#
A privacy-first, weekly-focused open-source calendar built for clarity and control.
Vision#
Most modern calendar tools are overloaded with automation, notifications, and analytics.
One Calendar takes a different approach:
- Respect user privacy.
- Provide a smooth, local-first planning experience.
- Keep the system understandable.
This project is built for individuals and small teams who value clarity over complexity.
Features#
Weekly planning#
- Drag & drop scheduling โ move and resize events directly on the calendar
- Inline editing โ create and update events without modal overload
- Right-click actions โ fast contextual controls for power users
- Keyboard-friendly interactions โ efficient navigation and editing workflows
Event management#
- Rich event metadata โ title, description, time range, and structured fields
- Precise time control โ flexible duration handling and adjustments
- Instant updates โ optimistic UI for a responsive experience
- Event persistence โ reliable storage with Drizzle
- Soft state handling โ controlled updates to avoid accidental data loss
Privacy & security#
- No AI tracking โ no behavioral profiling or data mining
- No analytics by default โ zero third-party tracking scripts
- User-controlled exports โ backup and portability without lock-in
- Secure authentication โ hardened session management via Better Auth
Sync & collaboration#
- Cloud sync (optional) โ multi-device synchronization using Drizzle
- Account-based access โ sign in with third-party providers
- Share-ready architecture โ designed for future team and shared calendar support
Customization & UX#
- Theme configuration โ adaptable visual styling
- Default view control โ choose how your calendar opens
- Locale-aware formatting โ proper date and time formatting per region
- Internationalization (i18n) โ language support built-in
- Composable UI system โ built with reusable components (shadcn/ui + Tailwind)
Comparison with other calendar tools#
| Feature | One Calendar | Google Calendar | Apple Calendar | Outlook Calendar | Proton Calendar |
|---|---|---|---|---|---|
| Event creation & editing | โ | โ | โ | โ | โ |
| Drag & drop scheduling | โ | โ | โ | โ | โ |
| All-day events | โ | โ | โ | โ | โ |
| Event reminders & notifications | โ | โ | โ | โ | โ |
| Time zone support | โ | โ | โ | โ | โ |
| Calendar sharing | โ | โ | โ | โ | โ |
| Multiple calendar views (day/week/month) | โ | โ | โ | โ | โ |
| Keyboard shortcuts | โ | โ | โ ๏ธ | โ | โ |
| Search events | โ | โ | โ | โ | โ |
| Quick add / natural input | โ | โ | โ ๏ธ | โ | โ ๏ธ |
| Cloud sync | โ | โ | โ | โ | โ |
| Web application | โ | โ | โ ๏ธ | โ | โ |
| Privacy-first architecture | โ | โ | โ ๏ธ | โ | โ |
| No analytics / tracking by default | โ | โ | โ ๏ธ | โ | โ |
| Open-source | โ | โ | โ | โ | โ ๏ธ |
| Self-hostable | โ | โ | โ | โ | โ |
| Data export | โ | โ | โ | โ | โ |
| ICS import / export | โ | โ | โ | โ | โ |
โ ๏ธ = limited or partial support
Getting Started#
Prerequisites#
Required Versions:
Quick Start#
# Clone the repo
git clone https://github.com/EvanTechDev/One-Calendar.git
cd One-Calendar
# Install dependencies
pnpm install
# Start the app
pnpm dev
Then visit http://localhost:3000
Environment Variables#
Copy .env.example to .env and fill in.
Key variables:
# Core
NEXT_PUBLIC_BASE_URL=http://localhost:3000
SALT=Backup-Salt
# Auth
BETTER_AUTH_SECRET=secret
BETTER_AUTH_URL=http://localhost:3000
# Optional
POSTGRES_URL=postgres://postgres:postgres@localhost:5432/onecalendar
BETTER_AUTH_API_KEY=your-api-key
NEXT_PUBLIC_TURNSTILE_SITE_KEY=site-key
TURNSTILE_SECRET_KEY=secret-key
Database Configuration#
This project uses Drizzle ORM.
After configuring POSTGRES_URL, run:
# Push schema to database
pnpm dlx drizzle-kit push
Production Recommendation#
For production deployments, use migrations:
# Generate migrations
pnpm dlx drizzle-kit generate
# Apply migrations
pnpm dlx drizzle-kit migrate
Tech Stack#
Contributing#
Contributions are welcome! Feel free to explore the project and submit improvements.
Please refer to CONTRIBUTING.md for setup instructions and contribution guidelines.
License#
Made with โค๏ธ
Published under MIT License.
This project is supported by Cloudflare Project Alexandria.