Skip to content

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 πŸ“…

License

Notifications You must be signed in to change notification settings

EvanTechDev/One-Calendar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2,106 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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

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

About

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 πŸ“…

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Contributors 3

  •  
  •  
  •