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
1# One Calendar
2
3> A privacy-first, weekly-focused open-source calendar built for clarity and control.
4
5<picture>
6 <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/c99309b1-2d7e-45c1-903b-b92505afa406">
7 <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/04762323-8bd7-4ced-b68e-45d52102d1f8">
8
9 <img src="https://github.com/user-attachments/assets/04762323-8bd7-4ced-b68e-45d52102d1f8" alt="Image">
10</picture>
11
12- [Live Product](https://calendar.xyehr.cn)
13- [Status](https://calendarstatus.xyehr.cn)
14- [Bluesky](https://bsky.app/profile/calendar.xyehr.cn)
15
16<a href="https://vercel.com/new/clone?repository-url=https://github.com/EvanTechDev/One-Calendar&env=NEXT_PUBLIC_BASE_URL,NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY,CLERK_SECRET_KEY,POSTGRES_URL,SALT&project-name=one-calendar&repo-name=one-calendar" style="display: inline-block;"><img src="https://vercel.com/button" alt="Deploy with Vercel" style="height: 32px;"></a>
17
18<a href="https://producthunt.com/product/one-calendar"><img src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=955482&theme=light&t=1748791250175"></img></a>
19
20## Vision
21
22Most modern calendar tools are overloaded with automation, notifications, and analytics.
23**One Calendar** takes a different approach:
24
25- Respect user privacy.
26- Provide a smooth, local-first planning experience.
27- Keep the system understandable.
28
29This project is built for individuals and small teams who value clarity over complexity.
30
31## Features
32
33### Weekly planning
34
35- **Drag & drop scheduling** – move and resize events directly on the calendar
36- **Inline editing** – create and update events without modal overload
37- **Right-click actions** – fast contextual controls for power users
38- **Keyboard-friendly interactions** – efficient navigation and editing workflows
39
40### Event management
41
42- **Rich event metadata** – title, description, time range, and structured fields
43- **Precise time control** – flexible duration handling and adjustments
44- **Instant updates** – optimistic UI for a responsive experience
45- **Event persistence** – reliable storage with PostgreSQL backend
46- **Soft state handling** – controlled updates to avoid accidental data loss
47
48### Privacy & security
49
50- **No AI tracking** – no behavioral profiling or data mining
51- **No analytics by default** – zero third-party tracking scripts
52- **End-to-end encryption (E2EE)** – optional encrypted data handling
53- **User-controlled exports** – backup and portability without lock-in
54- **Secure authentication** – hardened session management via Clerk
55
56### Sync & collaboration
57
58- **Cloud sync (optional)** – multi-device synchronization using PostgreSQL
59- **Account-based access** – sign in with third-party providers
60- **Share-ready architecture** – designed for future team and shared calendar support
61
62### Customization & UX
63
64- **Theme configuration** – adaptable visual styling
65- **Default view control** – choose how your calendar opens
66- **Locale-aware formatting** – proper date and time formatting per region
67- **Internationalization (i18n)** – language support built-in
68- **Composable UI system** – built with reusable components (shadcn/ui + Tailwind)
69
70### Comparison with other calendar tools
71
72| Feature | One Calendar | Google Calendar | Apple Calendar | Outlook Calendar | Proton Calendar |
73| ---------------------------------------- | :----------: | :-------------: | :------------: | :--------------: | :-------------: |
74| Event creation & editing | ✅ | ✅ | ✅ | ✅ | ✅ |
75| Drag & drop scheduling | ✅ | ✅ | ✅ | ✅ | ✅ |
76| All-day events | ✅ | ✅ | ✅ | ✅ | ✅ |
77| Event reminders & notifications | ✅ | ✅ | ✅ | ✅ | ✅ |
78| Time zone support | ✅ | ✅ | ✅ | ✅ | ✅ |
79| Calendar sharing | ✅ | ✅ | ✅ | ✅ | ✅ |
80| Multiple calendar views (day/week/month) | ✅ | ✅ | ✅ | ✅ | ✅ |
81| Keyboard shortcuts | ✅ | ✅ | ⚠️ | ✅ | ✅ |
82| Search events | ✅ | ✅ | ✅ | ✅ | ✅ |
83| Quick add / natural input | ✅ | ✅ | ⚠️ | ✅ | ⚠️ |
84| Cloud sync | ✅ | ✅ | ✅ | ✅ | ✅ |
85| Web application | ✅ | ✅ | ⚠️ | ✅ | ✅ |
86| End-to-end encryption (E2EE) | ✅ | ❌ | ❌ | ❌ | ✅ |
87| Privacy-first architecture | ✅ | ❌ | ⚠️ | ❌ | ✅ |
88| No analytics / tracking by default | ✅ | ❌ | ⚠️ | ❌ | ✅ |
89| Open-source | ✅ | ❌ | ❌ | ❌ | ⚠️ |
90| Self-hostable | ✅ | ❌ | ❌ | ❌ | ❌ |
91| Data export | ✅ | ✅ | ✅ | ✅ | ✅ |
92| ICS import / export | ✅ | ✅ | ✅ | ✅ | ✅ |
93| Custom themes | ✅ | ⚠️ | ❌ | ⚠️ | ⚠️ |
94| Custom default view | ✅ | ⚠️ | ❌ | ⚠️ | ⚠️ |
95
96⚠️ = limited or partial support
97
98## Getting Started
99
100### Prerequisites
101
102Required Versions:
103
104- [NodeJS](https://nodejs.org) (v20 or higher)
105- [Bun](https://bun.sh) (v1.2 or higher)
106
107### Quick Start
108
109```bash
110# Clone the repo
111git clone https://github.com/EvanTechDev/One-Calendar.git
112cd One-Calendar
113
114# Install dependencies
115bun install
116
117# Start the app
118bun run dev
119```
120
121Then visit `http://localhost:3000`
122
123### Environment Variables
124
125Copy `.env.example` to `.env` and fill in.
126
127Key variables:
128
129```env
130# Core
131NEXT_PUBLIC_BASE_URL=http://localhost:3000
132SALT=Backup-Salt
133
134# Clerk
135NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=...
136CLERK_SECRET_KEY=...
137
138# ATProto / Atmosphere (required for /at-oauth)
139ATPROTO_SESSION_SECRET=...
140
141# Optional DB (backup/share sync)
142POSTGRES_URL=postgres://postgres:postgres@localhost:5432/onecalendar
143```
144
145## Tech Stack
146
147- [Next.js](https://nextjs.org)
148- [TypeScript](https://www.typescriptlang.org/)
149- [Tailwind CSS](https://tailwindcss.com/)
150- [Shadcn/UI](https://ui.shadcn.com)
151- [PostgreSQL](https://www.postgresql.org/)
152- [Clerk](https://clerk.com)
153
154## Contributing
155
156Contributions are welcome! Feel free to explore the project and submit improvements.
157
158Please refer to [CONTRIBUTING.md](./CONTRIBUTING.md) for setup instructions and contribution guidelines.
159
160## License
161
162Made with ❤️
163
164Published under [MIT License](./LICENSE).
165
166This project is supported by [Cloudflare Project Alexandria](https://blog.cloudflare.com/expanding-our-support-for-oss-projects-with-project-alexandria/).
167
168## Star History
169
170[](https://www.star-history.com/#EvanTechDev/One-Calendar&Date)