One Calendar#
A privacy-first, weekly-focused open-source calendar built for clarity and control.
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:
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.