RAIT
Timezone-Rail Calendar for Nomads
ノマドのためのタイムゾーン並列カレンダー
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.
デジタルノマドとして毎日、頭の中で時差の計算をし、ときどき間違えて困っていたことから作りました。
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のキーリングに保存します。そのうえで、実際の予定を複数のタイムゾーンの列に同時に表示します。
What it does
機能See the same moment across several zones at a glance — the core trick that makes scheduling across borders trivial.
同じ時刻を複数のタイムゾーンでひと目で確認できます。国をまたいだ予定調整を簡単にする、中心となる仕組みです。
Reads your actual events via the Google Calendar API, so the rails reflect real commitments.
Google Calendar APIで実際の予定を読み込むため、表示には本当の予定が反映されます。
OAuth PKCE handled in Rust, with tokens stored in the operating system keyring rather than a config file.
OAuth PKCEをRustで処理し、トークンは設定ファイルではなくOSのキーリングに保存します。
Public holidays are surfaced via Nager.Date, so you never schedule into someone's day off.
Nager.Dateで祝日を表示するため、相手の休日に予定を入れてしまうことがありません。
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です。
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です。
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は毎日の小さな手間をなくします。タイムゾーンを並べるという一つのアイデアがプロダクトのすべてであり、その絞り込みこそが狙いです。