## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Getting Started

## Installation

See Deployment for Docker, systemd, and binary install options.

For development:

    cargo build --release

## First-time setup

### Option 1: Web UI (recommended)

1. Start the server:

       calrs serve --port 3000

2. Open `http://localhost:3000` in your browser
3. Register an account — the first user automatically becomes admin
4. From the dashboard, add a CalDAV source and create your first event type

### Option 2: CLI

    # Create an admin user
    calrs user create --email alice@example.com --name "Alice" --admin

    # Connect your CalDAV calendar
    calrs source add --url https://nextcloud.example.com/remote.php/dav \
                     --username alice --name "My Calendar"

    # Pull events
    calrs sync

    # Create a bookable meeting type
    calrs event-type create --title "30min intro call" --slug intro --duration 30

    # Check available slots
    calrs event-type slots intro

    # Start the web server
    calrs serve --port 3000

## Environment variables

Variable | Description | Default
--- | --- | ---
`CALRS_DATA_DIR` | Directory for the SQLite database | Platform-specific (XDG)
`CALRS_BASE_URL` | Public URL (needed for OIDC callbacks and email action links) | `http://localhost:3000`

## Data directory

calrs stores everything in a single SQLite database (`calrs.db`) inside the data directory. By default this follows XDG conventions:

- Linux: `~/.local/share/calrs/`
- macOS: `~/Library/Application Support/calrs/`

Override with `CALRS_DATA_DIR` or `--data-dir`.

## Quick test

After setup, your booking page is available at:

- `/u/yourname` — your profile listing all event types
- `/u/yourname/intro` — the slot picker for the “intro” event type