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
5
fork

Configure Feed

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

at main 170 lines 8.3 kB view raw view rendered
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** &ndash; move and resize events directly on the calendar 36- **Inline editing** &ndash; create and update events without modal overload 37- **Right-click actions** &ndash; fast contextual controls for power users 38- **Keyboard-friendly interactions** &ndash; efficient navigation and editing workflows 39 40### Event management 41 42- **Rich event metadata** &ndash; title, description, time range, and structured fields 43- **Precise time control** &ndash; flexible duration handling and adjustments 44- **Instant updates** &ndash; optimistic UI for a responsive experience 45- **Event persistence** &ndash; reliable storage with PostgreSQL backend 46- **Soft state handling** &ndash; controlled updates to avoid accidental data loss 47 48### Privacy & security 49 50- **No AI tracking** &ndash; no behavioral profiling or data mining 51- **No analytics by default** &ndash; zero third-party tracking scripts 52- **End-to-end encryption (E2EE)** &ndash; optional encrypted data handling 53- **User-controlled exports** &ndash; backup and portability without lock-in 54- **Secure authentication** &ndash; hardened session management via Clerk 55 56### Sync & collaboration 57 58- **Cloud sync (optional)** &ndash; multi-device synchronization using PostgreSQL 59- **Account-based access** &ndash; sign in with third-party providers 60- **Share-ready architecture** &ndash; designed for future team and shared calendar support 61 62### Customization & UX 63 64- **Theme configuration** &ndash; adaptable visual styling 65- **Default view control** &ndash; choose how your calendar opens 66- **Locale-aware formatting** &ndash; proper date and time formatting per region 67- **Internationalization (i18n)** &ndash; language support built-in 68- **Composable UI system** &ndash; 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[![Star History Chart](https://api.star-history.com/svg?repos=EvanTechDev/One-Calendar&type=Date)](https://www.star-history.com/#EvanTechDev/One-Calendar&Date)