Never miss a meeting again.
Tolon watches your calendars and takes over the whole screen when a meeting is about to start, so you can join it with one key.
macOS, Windows and Linux. Read only, local only, open source.
Install · How it works · Contribute · Roadmap
Notifications are easy to miss. A small banner slides in while you are deep in an editor, a document or a full-screen video, and five minutes later you are the person everyone is waiting for.
Tolon does not slide in. Two minutes before a meeting it fills every screen with the meeting's name, the time and who is in it. Press Enter to join the call, Esc to snooze, or D to dismiss. Then it gets out of the way.
- Full-screen reminders. On every screen, and above full-screen apps on macOS too.
- One key to join. Tolon finds the link for Google Meet, Zoom, Microsoft Teams, Webex and Jitsi, and falls back to any https link in the location.
- Your calendars, as they are. Subscribe to any iCal address: Google's secret address, a published Outlook calendar, or any
.icslink. Google Calendar sign-in follows in beta 2. - Recurring events done right. Repeat rules, exceptions, moved occurrences and time zones, including the night the clocks change.
- Quiet when you want it. Pause for an hour, set quiet hours, and ignore all-day events, events you declined, or anything matching words like "Focus" or "Lunch".
- A tray icon that knows what is next. The next meeting and the rest of your day, one click away.
- Light and dark. Follows your system, or pick one.
![]() |
![]() |
| The tray panel | Calendars and their sync status |
![]() |
![]() |
| The dark theme | The Peek style |
Peek is an optional style for the reminder. Turn it on under Settings, Appearance, Style.
Every screen is designed in FigCraft, an open-source interface design tool written in Rust. The working file is in this repository at mockups/mockups.figcraft. It is a work in progress, kept up to date as the design changes, and anyone can open it in FigCraft to explore it, take ideas from it, or propose changes. Colours and type come from Swiss Moss.
- Read only. Tolon never writes to your calendars. No RSVPs, no edits.
- Local only. Your calendars and settings live in a SQLite file on your machine. There is no Tolon server and no account.
- No telemetry. Tolon sends nothing anywhere. The only network calls are to your calendar feeds and to GitHub Releases for updates.
- Secrets stay secret. Private calendar addresses are stored only in the local database and are stripped from every log line.
- Signed updates. Every update is checked against the project's signing key before it installs.
Beta 1 is on its way. When it is out, download the file for your system from the Releases page and follow the install guide. It takes about two minutes, including adding your first calendar.
| System | Download |
|---|---|
| macOS, Apple silicon and Intel | .dmg (universal) |
| Windows | .exe (the .msi comes with 0.1.0) |
| Linux | .AppImage or .deb |
Beta builds are not signed by Apple or by a Windows certificate authority yet, so your system asks you to confirm once. The install guide walks you through it.
Tolon needs an iCal link to your calendar. This guide shows where to find it in Outlook.com, Google Calendar and Yahoo Calendar.
flowchart LR
feeds["Your calendar feeds<br/>(iCal, Google)"] -->|every 5 min, ETag| sync["tolon-sync<br/>fetch"]
sync --> core["tolon-core<br/>parse, expand, ignore rules,<br/>alarm state machine"]
core <--> store[("tolon-store<br/>SQLite")]
core --> app["tolon-app<br/>scheduler, tray, windows"]
app --> platform["tolon-platform<br/>above-everything windows<br/>per OS"]
app <-->|commands and events| ui["ui/<br/>React + Swiss Moss"]
Tolon is a Tauri 2 app: a Rust core with a small React view on top.
- Sync fetches each calendar every five minutes and asks the server whether anything changed first, so a quiet calendar costs one tiny request.
- Core turns raw
.icsdata into the meetings of the next seven days: time zones, repeat rules, exceptions, cancelled and declined events. It has no I/O, which keeps it fast to test. - The scheduler plans each alarm, fires it once, and remembers snoozes and dismissals across restarts.
- Platform code does the per-OS work of putting a window above everything else, including full-screen apps.
- The view only renders what the core tells it and sends your clicks back as commands. It is styled entirely with Swiss Moss, the project's design system.
The full design is in docs/architecture.md.
| Milestone | What you get | Status |
|---|---|---|
| M0 Skeleton | The app boots on all three systems, CI green | Done |
| M1 Calendars | Add an iCal calendar, sync it, see today's meetings | Done |
| M2 Alarms | The full-screen reminder, snooze, dismiss, join, keyboard | In progress |
| M3 Daily use | Tray panel, pause, quiet hours, ignore rules, sound, start at login | Done |
| M4 Release | Signed updates, installers, v0.1.0-beta.1 |
In progress |
| M5 Google | Google Calendar sign-in, v0.1.0-beta.2 |
Planned |
Every feature has written scenarios and acceptance criteria in docs/plan.md, and the live task list is docs/ledger.md.
You need Rust (the version is pinned in rust-toolchain.toml), Node 22, and the Tauri 2 prerequisites for your system.
git clone https://github.com/danielpsf/tolon.git
cd tolon
npm --prefix ui ci
cargo run -p tolon-app # run Tolon in development
cargo xtask ci # the full check that every change must passOn macOS and Linux, make dev does the same with hot reload, installing the UI dependencies first when they changed; make ci runs the full check.
Bug reports, real-world calendar feeds that break the parser (anonymised, please), and pull requests are all welcome. Start with CONTRIBUTING.md: it covers the setup, the checks, commit conventions and the rules every change follows.
Much of Tolon is built by coding agents working from a written plan, with a human deciding what ships. If you are curious how that works, or want to use your own agent on the project, read docs/agents/README.md.
- Tauri 2 and Rust, for a small native app on every system.
- Swiss Moss, the design system behind every pixel.
- FigCraft, where the screens are designed.
Thank you to the people who build and maintain these projects in the open.
Tolon is licensed under the Apache License 2.0.



