Skip to content

One Calendar is a calendar web app that uses NextJS. It has rich features: AI Chat, countdown, bookmarks, to-do lists and analysis features! πŸ“…

License

Notifications You must be signed in to change notification settings

EvanTechDev/One-Calendar

One Calendar

Vercel Project Status license forks stars issues pull-requests

A beautifully minimal open-source calendar app to plan your week and life

Deploy with Vercel Deploy to Netlify

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

TechStack

Preview

App Green Yellow

Getting Started

Prerequisites

Required Versions:

  • NodeJS (v18 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 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

Environment Setup

  1. SALT

Install Openssl and Use this command to generate a SALT

openssl rand -hex 16

Then copy it into .env

  1. PostgreSQL

Run this command if you installed docker

bun run db

And the env:

POSTGRES_URL=postgres://postgres:postgres@localhost:5432/onecalendar
  1. Cloudflare Turnstile

Go to Cloudflare dashboard

Login and click the Turnstile button

home

Click the Add Widget button

Widget

Name it and add a hostname, then choose Managed and click the Create button

Create

Copy your SiteKey and SecretKey and fill it into .env

Key

Why don't I just use Clerk's Captcha? Maybe there are bugs.

  1. Groq

Go to Groq Console and login

Click the Create API Key

Screenshot_20250502_150743

Copy your API Key

Screenshot_20250502_150857

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

Roadmap & Feedback

Star History

Star History Chart

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:

Vercel Clerk Groq OpenWeather API

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
See the LICENSE file for details.

About

One Calendar is a calendar web app that uses NextJS. It has rich features: AI Chat, countdown, bookmarks, to-do lists and analysis features! πŸ“…

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Languages