[READ-ONLY] One Calendar is a privacy-first calendar web app built with Next.js. It has modern security features, including e2ee, password-protected sharing, and self-destructing share links ๐Ÿ“… calendar.xyehr.cn
nextjs
0

Configure Feed

Select the types of activity you want to include in your feed.

One-Calendar / README.md
8.0 kB

One Calendar#

A privacy-first, weekly-focused open-source calendar built for clarity and control.

Image

Deploy with Vercel

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#

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.

Star History#

Star History Chart