A command-line iCal calendar viewer and syncer written in Rust.
- View today's, this week's, this month's, or upcoming N days' events
- Recurring event support: Automatically expands RRULE-based recurring events within the requested date range
- Color-coded output: Each calendar can be assigned a terminal color for quick visual identification
- Local timezone display: Event times are converted to your system's local timezone
- Sync calendars from remote iCal (
.ics) URLs - Support for all-day and timed events
cargo install icaruAfter installation, make sure ~/.cargo/bin is in your PATH, then you can run:
icaru- Rust (latest stable version)
git clone https://github.com/maedana/icaru.git
cd icaru
cargo build --releaseThe binary will be available at target/release/icaru.
Create ~/.icaru/config.toml:
[[cal]]
file = "work.ics"
name = "Work"
color = "blue"
url = "https://example.com/work.ics"
[[cal]]
file = "personal.ics"
name = "Personal"
color = "green"file— local filename stored under~/.icaru/name— display name shown in outputcolor— terminal color (red,green,blue,yellow,magenta,cyan,white)url— remote iCal URL (optional; required forpullsubcommand)
# Show today's events (default)
icaru
# Other ranges
icaru this-week
icaru next-month
icaru days 7
icaru date 2026-04-20
# Sync calendars from remote URLs
icaru pullExample output:
2026-04-13 (Mon)
09:00-10:00 [Work] Weekly MTG
12:30 [Work] Lunch with team
2026-04-14 (Tue)
All day [Personal] Dentist
See icaru -h for the full list of subcommands and options.
cargo runcargo testcargo clippy
cargo fmtThis project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request