Work/RAIT
Productivity App

RAIT

Timezone-Rail Calendar for Nomads

ノマドのためのタイムゾーン並列カレンダー

RAIT icon
01

Overview

概要

Living across timezones makes calendars lie to you. Rait (Urdu for 'sand') is a desktop calendar that shows parallel timezone rails side by side, so a 3pm call is unambiguous no matter where everyone happens to be.

複数のタイムゾーンをまたいで暮らすと、カレンダーの時刻が当てにならなくなります。Rait(ウルドゥー語で「砂」の意)は、複数のタイムゾーンを列として並べて表示するデスクトップカレンダーです。誰がどこにいても、午後3時の通話がいつなのか迷いません。

Built for the daily digital-nomad problem of constantly doing timezone arithmetic in my head — and getting it wrong just often enough to matter.

デジタルノマドとして毎日、頭の中で時差の計算をし、ときどき間違えて困っていたことから作りました。

02

How it was built

開発

It authenticates to Google Calendar with a Rust OAuth PKCE flow, storing tokens in the OS keyring, then renders your real events across several timezone columns at once.

RustのOAuth PKCEフローでGoogleカレンダーに接続し、トークンはOSのキーリングに保存します。そのうえで、実際の予定を複数のタイムゾーンの列に同時に表示します。

03

What it does

機能
01
Parallel Timezone Rails
タイムゾーンの並列表示

See the same moment across several zones at a glance — the core trick that makes scheduling across borders trivial.

同じ時刻を複数のタイムゾーンでひと目で確認できます。国をまたいだ予定調整を簡単にする、中心となる仕組みです。

02
Google Calendar
Googleカレンダー連携

Reads your actual events via the Google Calendar API, so the rails reflect real commitments.

Google Calendar APIで実際の予定を読み込むため、表示には本当の予定が反映されます。

03
Secure by Default
標準で安全

OAuth PKCE handled in Rust, with tokens stored in the operating system keyring rather than a config file.

OAuth PKCEをRustで処理し、トークンは設定ファイルではなくOSのキーリングに保存します。

04
Holiday-Aware
祝日に対応

Public holidays are surfaced via Nager.Date, so you never schedule into someone's day off.

Nager.Dateで祝日を表示するため、相手の休日に予定を入れてしまうことがありません。

04

Under the hood

技術の詳細

Parallel timezone railsタイムゾーンの並列表示

The whole product is one idea: render your real calendar across several timezone columns at once, so a 3pm call is unambiguous wherever everyone is. It removes the daily papercut of doing timezone arithmetic in your head — and getting it wrong just often enough to matter.

プロダクト全体が一つのアイデアです。実際のカレンダーを複数のタイムゾーンの列に同時に表示し、誰がどこにいても午後3時の通話がいつなのか迷わないようにします。頭の中で時差を計算し、ときどき間違えるという毎日の小さな手間をなくします。

OAuth done properlyOAuthをきちんと実装

The Rust core runs a Google OAuth PKCE flow and stores tokens in the OS keyring rather than a config file, then pulls events from the Calendar API with public holidays from Nager.Date. A focused, read-only v0.1.

RustのコアがGoogleのOAuth PKCEフローを実行し、トークンを設定ファイルではなくOSのキーリングに保存します。そのうえでCalendar APIから予定を、Nager.Dateから祝日を取得します。範囲を絞った、読み取り専用のv0.1です。

05

Stack

技術構成

Rait is Tauri 2 + Rust + React 19. The Rust core runs a Google OAuth PKCE flow, stores tokens in the OS keyring and pulls events from the Calendar API; holidays come from Nager.Date. A focused, read-only v0.1.

RaitはTauri 2+Rust+React 19です。RustのコアがGoogleのOAuth PKCEフローを実行し、トークンをOSのキーリングに保存して、Calendar APIから予定を取得します。祝日はNager.Dateから取得します。範囲を絞った、読み取り専用のv0.1です。

06

Where it is now

現状と今後

Rait is a focused, read-only v0.1 that already nails the timezone-rail view over real Google Calendar data. Writing and editing events, plus additional calendar providers, are the obvious next layer on top of the existing OAuth and keyring plumbing.

Raitは範囲を絞った読み取り専用のv0.1で、実際のGoogleカレンダーのデータを使ったタイムゾーンの並列表示はすでに完成しています。次は予定の作成と編集、そして他のカレンダーへの対応で、既存のOAuthとキーリングの仕組みの上に構築します。

Rait removes a daily papercut — the timezone-rail idea is the whole product, and that focus is the point.

Raitは毎日の小さな手間をなくします。タイムゾーンを並べるという一つのアイデアがプロダクトのすべてであり、その絞り込みこそが狙いです。

Next case study 次の実績
SANNATA
Pitch-Black Spotify Desktop Client
→