One Calendar
What is One Calendar?
One Calendar is a privacy-first, weekly-focused, open-source calendar app, designed to help individuals and teams plan, focus, and stay in sync.
Without One Calendar, your schedule is scattered. With it, your week feels intentional.
Why One Calendar?
Most calendar tools are cluttered, over-engineered, or locked behind paywalls. One Calendar aims to be:
- 🧠 AI Powered – AI-first app that streamlines your scheduling.
- 🕹 Interactive & Smooth – Drag, drop, right-click, and edit with ease.
- 🔐 Private & Local – Your data is yours. Export, backup, and control.
- ☁️ Cloud Sync – Optional sync via PostgreSQL.
- 🌐 Clerk-Account – Easily login with third-party.
- 🌍 International – Automatically adapts to your language (English / 中文).
- 🧱 Customizable – Tailor themes, default view, and integrations.
Tech Stack
- Frontend: Next.js 14, Tailwind CSS, shadcn/ui, TypeScript
- Auth: Clerk
- Storage: PostgreSQL
- Weather: OpenWeather API
- AI: Groq API
- Analytics: Vercel Analytics
- Deploy: Vercel
Preview
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 dev
Then visit http://localhost:3000
Environment Variables
Copy .env.example
to .env
and fill in:
# Required
NEXT_PUBLIC_BASE_URL=http://localhost:3000
SALT=Backup-Salt
# Auth (Required)
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your-clerk-publishable-key
CLERK_SECRET_KEY=your-clerk-secret
# Optional
GROQ_API_KEY=your-groq-api
OPENWEATHER_API_KEY=your-open-weather-api-key
# Optional, database
POSTGRES_URL=postgres://postgres:postgres@localhost:5432/onecalendar
# Optional, Cloudflare turnstile captcha
NEXT_PUBLIC_TURNSTILE_SITE_KEY=site-key
TURNSTILE_SECRET_KEY=secret-key
Enviroment Setup
- SALT
Install Openssl and Use this command to generate a SALT
openssl rand -hex 16
Then copy it into .env
- PostgreSQL
Run this command if you installed docker
bun run db
And the env:
POSTGRES_URL=postgres://postgres:postgres@localhost:5432/onecalendar
- Cloudflare Turnstile
[!NOTE]
Updating
- Groq
Go to Groq Console and login
Click the Create API Key
Copy your API Key
Fill in the env file:
GROQ_API_KEY=your-api-key
Roadmap
You can report a bug or request a new feature on our feedback website
Star History
The Team
Brought to you by a small team of makers who love clean tools and open-source.
Check out our contributors ❤️
Sponsor
BTC: bc1qdhn6c7tlcaflzu3u5fva825l20k9eqnqag5xzj
Acknowledgements
This project wouldn’t be possible without these awesome services:
License
This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
See the LICENSE file for details.