Skip to content

Latest commit

 

History

History
200 lines (140 loc) · 8.73 KB

File metadata and controls

200 lines (140 loc) · 8.73 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 PostgreSQL backend
  • 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
  • End-to-end encryption (E2EE) – optional encrypted data handling
  • User-controlled exports – backup and portability without lock-in
  • Secure authentication – hardened session management via Clerk

Sync & collaboration

  • Cloud sync (optional) – multi-device synchronization using PostgreSQL
  • 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 ⚠️
End-to-end encryption (E2EE)
Privacy-first architecture ⚠️
No analytics / tracking by default ⚠️
Open-source ⚠️
Self-hostable
Data export
ICS import / export
Custom themes ⚠️ ⚠️ ⚠️
Custom default view ⚠️ ⚠️ ⚠️

⚠️ = limited or partial support

Getting Started

Prerequisites

Required Versions:

  • NodeJS (v20 or higher)
  • Bun (v1.2 or higher)

Quick Start

# Clone the repo
git clone https://github.com/EvanTechDev/One-Calendar.git
cd One-Calendar

# Install dependencies
bun install

# Start the app
bun run 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

# Clerk
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=...
CLERK_SECRET_KEY=...

# ATProto / Atmosphere (required for /at-oauth)
ATPROTO_SESSION_SECRET=...

# Optional DB (backup/share sync)
POSTGRES_URL=postgres://postgres:postgres@localhost:5432/onecalendar
POSTGRES_SSL=false
POSTGRES_SSL_REJECT_UNAUTHORIZED=false

Database Configuration

This project uses Prisma schema sync.

After configuring POSTGRES_URL, initialize schema from schema.prisma:

# Generate Prisma client
bunx prisma generate

# Push schema to database
bunx prisma db push

Production Recommendation

For production deployments without SQL migration files, keep schema in sync with:

# Ensure Prisma Client is generated
bunx prisma generate

# Sync schema to database (no SQL migration files required)
bunx prisma db push

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.

Star History

Star History Chart