Skip to content

πŸ—“οΈ A beautiful, performant calendar application

License

Notifications You must be signed in to change notification settings

zejiran/chronos

Repository files navigation

Chronos Logo

Chronos

A modern, cross-platform calendar application built with Tauri, Solid.js, and Rust.

Features

  • Cross-Platform: Native apps for macOS, Windows, and Linux
  • Multiple Calendar Support: Google Calendar, Microsoft Outlook, CalDAV, and local calendars
  • Beautiful Themes: 6 built-in themes with dark/light mode support
  • Command Palette: Quick access to all features with fuzzy search (Cmd+K)
  • Offline-First: Full functionality without internet, syncs when connected
  • Video Call Integration: One-click join for Zoom, Google Meet, Microsoft Teams
  • Smart Notifications: Customizable reminders with silent hours
  • Keyboard-First: Comprehensive keyboard shortcuts for power users
  • Privacy-Focused: Local data storage with secure credential handling

Tech Stack

  • Frontend: Solid.js, TypeScript, PandaCSS
  • Backend: Rust, Tauri v2
  • Database: SQLite with FTS5 for search
  • Build: Vite, GitHub Actions

Getting Started

Prerequisites

  • Node.js 20+
  • Rust 1.70+
  • Platform-specific dependencies (see below)

macOS

xcode-select --install

Ubuntu/Debian

sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev

Windows

Install Visual Studio Build Tools with C++ support.

Installation

# Clone the repository
git clone https://github.com/yourusername/chronos.git
cd chronos

# Install dependencies
npm install

# Run in development mode
npm run tauri dev

# Build for production
npm run tauri build

Project Structure

chronos/
β”œβ”€β”€ src/                    # Frontend source code
β”‚   β”œβ”€β”€ components/         # Solid.js components
β”‚   β”‚   β”œβ”€β”€ Calendar/       # Calendar views
β”‚   β”‚   β”œβ”€β”€ CommandPalette/ # Command palette
β”‚   β”‚   β”œβ”€β”€ Events/         # Event management
β”‚   β”‚   β”œβ”€β”€ Layout/         # Layout components
β”‚   β”‚   β”œβ”€β”€ Settings/       # Settings UI
β”‚   β”‚   β”œβ”€β”€ Sidebar/        # Sidebar components
β”‚   β”‚   └── shared/         # Shared UI components
β”‚   β”œβ”€β”€ lib/                # Utility functions
β”‚   β”œβ”€β”€ stores/             # State management
β”‚   β”œβ”€β”€ styles/             # Global CSS
β”‚   └── types/              # TypeScript types
β”œβ”€β”€ src-tauri/              # Rust backend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ commands/       # Tauri commands
β”‚   β”‚   β”œβ”€β”€ db/             # Database layer
β”‚   β”‚   β”œβ”€β”€ models/         # Data models
β”‚   β”‚   β”œβ”€β”€ sync/           # Sync engine
β”‚   β”‚   └── utils/          # Utilities
β”‚   └── Cargo.toml
β”œβ”€β”€ styled-system/          # PandaCSS generated files
└── package.json

Keyboard Shortcuts

Shortcut Action
Cmd+K Open command palette
Cmd+N New event
Cmd+T Go to today
Cmd+, Open settings
Cmd+B Toggle sidebar
D Day view
W Week view
M Month view
Y Year view
A Agenda view
Cmd+Left Previous period
Cmd+Right Next period

Themes

Chronos includes 6 beautiful themes:

  • Midnight (default dark)
  • Dawn (light)
  • Abyss (OLED black)
  • Arctic (Nord-inspired)
  • Neon (Tokyo Night)
  • Latte (Catppuccin light)

Calendar Providers

Google Calendar

  1. Go to Settings > Accounts
  2. Click "Add Account" > Google Calendar
  3. Sign in with your Google account

Microsoft Outlook

  1. Go to Settings > Accounts
  2. Click "Add Account" > Microsoft Outlook
  3. Sign in with your Microsoft account

CalDAV

  1. Go to Settings > Accounts
  2. Click "Add Account" > CalDAV
  3. Enter your CalDAV server URL and credentials

Common CalDAV URLs:

  • iCloud: https://caldav.icloud.com/
  • FastMail: https://caldav.fastmail.com/
  • Nextcloud: https://your-server.com/remote.php/dav/

Development

Commands

# Development server
npm run tauri dev

# Build production app
npm run tauri build

# Frontend only (no Tauri)
npm run dev

# Build frontend
npm run build

# Generate PandaCSS
npx panda codegen

Environment Variables

Create a .env file for OAuth configuration:

VITE_GOOGLE_CLIENT_ID=your-google-client-id
VITE_GOOGLE_CLIENT_SECRET=your-google-client-secret
VITE_MICROSOFT_CLIENT_ID=your-microsoft-client-id
VITE_MICROSOFT_CLIENT_SECRET=your-microsoft-client-secret

License

License: GPL v3

Contributing

Contributions are welcome! Please read our contributing guidelines before submitting PRs.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

About

πŸ—“οΈ A beautiful, performant calendar application

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published