Skip to content

Latest commit

 

History

328 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TabletopTime

Ditch the group chat chaos. A self-hosted, simplified scheduling tool for tabletop gamers.

License Buy Me a Coffee at ko-fi.com

Overview

TabletopTime helps you find the best time for your gaming group to meet. It is designed to be self-hosted on your home server (Synology, Unraid, Rasp Pi) and integrates deeply with Telegram for real-time coordination.

Key Features

  • Host: Create, edit, and delete time slots dynamically. Manage quorum rules (min players) and capacity limits (max players). Remove accepted participants to trigger waitlist auto-promotion.
  • Vote & Suggest: No login required. Simple "Yes", "If Needed", or "No" voting. Attendees can also suggest new time slots if none work.
  • Waitlist: Automatic waitlist management with First-Come-First-Serve promotion when spots open up.
  • Finalize: Select a host/location and generate calendar invites (.ics / Google Calendar). Once finalized, slot management is locked.
  • Telegram / Discord Bot:
    • Pins a live-updating dashboard in your group chat.
    • Notifies everyone when an event is finalized.
    • Discord Exclusive:
      • "Recover with Discord" allows instant login for event managers.
      • Post live-updating dashboards to your channel.
  • My Events & Cross-Device Sync: No account, but connect Telegram or Discord and your voting history follows you anywhere. The profile page shows a per-event sync badge (linked, or "This Device Only"), and you can link or unlink any event you've voted on straight from that badge.
  • Privacy & Security:
    • Zero Tracking: We do not use Google Analytics, Facebook Pixels, or any third-party trackers.
    • Secure Hashing: All administrative tokens are hashed (SHA-256) before storage. We never store plaintext keys.
    • Self-Hostable: Your data stays on your server (SQLite). We capture as little information as possible.
    • Persistence: We use cookies only to restore your session, never to track you.

One Click Start (Cloud)

Don't want to manage a server? We host a free version for the community.

Launch TabletopTime Cloud

Quick Start (Docker)

The easiest way to run TabletopTime is using the pre-built Docker image.

docker run -d \
  -p 3000:3000 \
  -v ./data:/app/data \
  -e DATABASE_URL="file:/app/data/scheduler.db" \
  --name tabletop-time \
  ghcr.io/mels0n/tabletop_scheduler:latest

Open http://localhost:3000 to start creating events.

Configuration

TabletopTime is configured via environment variables. See EnvVariables.md for a complete list.

Variable Required Description Default / Example
DATABASE_URL Yes Path to SQLite DB. Must match volume mount. file:/app/data/scheduler.db
TELEGRAM_BOT_TOKEN Optional Token from @BotFather for notifications. 123456:ABC...
TZ Optional Timezone for logs/database. America/Chicago

Documentation

Development

To build from source:

  1. Clone the repo: git clone https://github.com/mels0n/tabletop_scheduler.git
  2. Install dependencies: npm install
  3. Initialize DB: npx prisma migrate dev
  4. Start server: npm run dev

See CONTRIBUTING.md for more comprehensive dev instructions.

License

CC-BY-NC-SA 4.0

Hosted by UntapWeb

About

Resources

Contributing

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages