time-broker

module
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2026 License: MIT

README

time-broker

Release Platform Docs

Get back your time. Use a managed broker, hooked up to your calendar provider.

time-broker demo

Overview

time-broker is a TUI based command line tool that connects to popular online-calendar providers to help you manage when you are free, when you have upcoming events, and more.

time-broker was made so that you can easily chat with others and see when you are free to meet. No need to use when2meet when you can directly use a broker to manager when you are free, all at the reach of your terminal.

List of calendar providers supported:

  • Google Calendar

Full documentation: https://emoral435.github.io/time-broker/

Install

To install, you can use the following command:

curl -fsSL https://raw.githubusercontent.com/emoral435/time-broker/main/install.sh | sh

After installing, use time-broker or the shorthand tb to view the setup wizard.

Uninstall

To uninstall, run:

time-broker uninstall

This will remove the binary, configuration, tokens, and any symlinks created by the installer.

How it works

Upon installation, you can use time-broker to configure your calendar provider and additional personal settings.

From there, you can use time-broker help to see all the possible options you have, but for starters, you have...

time-broker schedule event # schedule a new event via your calendar provider

Web Frontend

Alongside the TUI, time-broker includes a web frontend located in frontend/ for a more graphical interface to view and manage your calendar.

# Start the dev server on localhost:3000
make frontend-dev

# Build for production
make frontend-build

The dev server proxies /api requests to the Go backend at localhost:8080. Configure the target in frontend/vite.config.ts.

Development

Prerequisites

  • Go 1.25+
  • golangci-lint
  • Node.js (for frontend work)

Makefile targets

Target Description
build Build the Go binary to bin/time-broker
lint Run golangci-lint on all Go files
lint-fix Run golangci-lint with auto-fix
vet Run go vet on all Go packages
test Run all Go tests (bypasses cache)
build-all Verify all Go packages compile
frontend-dev Start the Vite dev server on port 3000
frontend-build Build the frontend for production
frontend-lint Run oxlint on frontend TypeScript files

Precommit hooks

This project uses lefthook to run linting, vetting, building, and testing on every commit. All checks run in parallel and only trigger when relevant files change.

To enable hooks after cloning:

make setup

This installs lefthook via Homebrew (if missing) and registers the git hooks.

Contributing

This repository uses Conventional Commits for commit messages (e.g. feat:, fix:, chore:). All pull requests are squash-merged into main.

Releases are built with GoReleaser. To create a release, push a semver tag:

git tag v1.2.0
git push origin v1.2.0

This triggers the goreleaser workflow, which builds binaries for all platforms and publishes a GitHub Release with checksums.

For full contributing guidelines, see the contributing documentation.

Star History

Star History Chart

Directories

Path Synopsis
cmd
time-broker command
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL