Tiny CLI tool that helps to visualize iCal file content in the terminal.

Overview

Calio

Calio is a tiny CLI tool that helps to visualize iCal file in the terminal.

CALIO

Installation

You can either install it via cargo or download the binaries from GitHub releases.

If you go the cargo route, you need to have it installed (usually using rustup). In a terminal, run this command to install calio:

cargo install calio

Then you'll be able to run calio from whichever directory you're in.

How-To

Calio is easy to use, just provide a file path or stdin to read the ics contents:

calio /some/file/path/cal.ics
calio https://gist.githubusercontent.com/DeMarko/6142417/raw/1cd301a5917141524b712f92c2e955e86a1add19/sample.ics
cat /some/file/path.cal.ics | calio

And also comes with the following options:

--keep-alive  Keep the app running and do not exit on stdout.
--hide-desc   Don't show the event's description.
-h, --help    Print help information.

Run with --help/-h for detailed usage.

You might also like...
A Turing-complete but dead-simple spaced repetition CLI that helps you learn stuff.

Forne — Learn Stuff Forne is a Turing-complete spaced repetition engine to help you learn stuff your way. What does that mean? Well, there are a few p

A tiny library and application for animating text in the terminal.
A tiny library and application for animating text in the terminal.

🐌 snailshell A tiny library and application for animating text in the terminal. 🪄 It's so easy to add some flair to your text RPGs or console progra

A very tiny terminal snake game, purely implemented in Rust.
A very tiny terminal snake game, purely implemented in Rust.

tiny-snake.rs A very tiny terminal snake game, purely implemented in Rust. Features Optimized binary has only 2760 bytes. No dependencies. Not even li

A Yocto setup and management tool that helps you keep your environment up-to-date and in-sync with your team
A Yocto setup and management tool that helps you keep your environment up-to-date and in-sync with your team

yb (Yocto Buddy) yb is designed to make it easy to setup and (perhaps more importantly) keep Yocto environments up-to-date and in-sync with your team.

rpm (Rust project manager) is a tool that helps you to manage your rust projects

rpm rpm (Rust project manager) is a open source tool for managing your rust project in an organized way Installation # make sure you have rust install

Tiny Rust CLI to checkout a recent git branch interactively
Tiny Rust CLI to checkout a recent git branch interactively

git-select-branch Tiny Rust CLI to checkout a recent git branch interactively. Installation Homebrew brew tap dnjstrom/git-select-branch brew install

Ideas = Creations, a multi-language CMS(Content Management System) based on Rust Web stacks, with long-term upgrade and maintenance.

Ideas = Creations 中文 RustHub: Rust ideas yesterday, shining creations today! This repository holds source code used to run https://rusthub.org, it's

This is an example Nostr rust project to enable '402 Payment Required' responses for requests to paid content.

Nostr Paywall Example This is an example Nostr rust project to enable 402 Payment Required responses for requests to paid content. To prove payment, a

Shared k-mer content between two genomes

skc skc is a simple tool for finding shared k-mer content between two genomes. Installation Prebuilt binary curl -sSL skc.mbh.sh | sh # or with wget w

Comments
  • feat: Add a flag to hide the description

    feat: Add a flag to hide the description

    This commit adds a flag to not show any of the event descriptions, like a summary view.

    Some calendars have really long event descriptions containing links and all sorts of garbage. It's super handy to just see the event name. Consider:

    ╰→ calio buffalo-city-block-1.ics --hide-desc
    Sun Jun 11 2023
        16:00-18:00 🔌BuffaloCityBlock1 Stage 4 😣
    
    Mon Jun 12 2023
        21:00-00:00 🔌BuffaloCityBlock1 Stage 3 😟
    
    Wed Jun 14 2023
        16:00-18:00 🔌BuffaloCityBlock1 Stage 3 😟
        18:00-19:00 ⚠️  End of schedule
    

    versus the full version:

    ╰→ calio buffalo-city-block-1.ics
    
    Sun Jun 11 2023
        16:00-18:00 🔌BuffaloCityBlock1 Stage 4 😣
                    This event shows that there will be loadshedding on Sunday from 16:00 to Sunday at 18:00 in the load shedding area buffalo-city-block-1.
    
                    When new loadshedding schedules are announced, your calendar will be automatically updated to show when your power will be off.
    
                    While these new schedules are calculated immediately, it can sometimes take a bit of time for your calendar app (ie Google Calendar, Apple iCalendar, or Outlook) to fetch the updated schedules. Often you can set the update frequency in the settings of your calendar app.
    
                    ---
    
                    Incorrect? Open an issue here: https://github.com/beyarkay/eskom-calendar/issues/new
    
                    Generated by Boyd Kane's eskom-calendar: https://eskomcalendar.co.za/ec?calendar=buffalo-city-block-1.ics.
    
                    National loadshedding information scraped from https://twitter.com/Eskom_SA/status/1667876251464335361.
    
                    Calendar compiled on Sunday 11 Jun 2023 at 13:31:03 (UTC+02:00) by run https://github.com/beyarkay/eskom-calendar/actions/runs/5235724964.
    
                    eskom-calendar version: https://github.com/beyarkay/eskom-calendar/tree/5cdc7ed3c3648a456d42af8728075b09af5ec019
    
    Mon Jun 12 2023
        21:00-00:00 🔌BuffaloCityBlock1 Stage 3 😟
                    This event shows that there will be loadshedding on Monday from 21:00 to Tuesday at 00:00 in the load shedding area buffalo-city-block-1.
    
                    When new loadshedding schedules are announced, your calendar will be automatically updated to show when your power will be off.
    
                    While these new schedules are calculated immediately, it can sometimes take a bit of time for your calendar app (ie Google Calendar, Apple iCalendar, or Outlook) to fetch the updated schedules. Often you can set the update frequency in the settings of your calendar app.
    
                    ---
    
                    Incorrect? Open an issue here: https://github.com/beyarkay/eskom-calendar/issues/new
    
                    Generated by Boyd Kane's eskom-calendar: https://eskomcalendar.co.za/ec?calendar=buffalo-city-block-1.ics.
    
                    National loadshedding information scraped from https://twitter.com/Eskom_SA/status/1667876251464335361.
    
                    Calendar compiled on Sunday 11 Jun 2023 at 13:31:03 (UTC+02:00) by run https://github.com/beyarkay/eskom-calendar/actions/runs/5235724964.
    
                    eskom-calendar version: https://github.com/beyarkay/eskom-calendar/tree/5cdc7ed3c3648a456d42af8728075b09af5ec019
    
    Wed Jun 14 2023
        16:00-18:00 🔌BuffaloCityBlock1 Stage 3 😟
                    This event shows that there will be loadshedding on Wednesday from 16:00 to Wednesday at 18:00 in the load shedding area buffalo-city-block-1.
    
                    When new loadshedding schedules are announced, your calendar will be automatically updated to show when your power will be off.
    
                    While these new schedules are calculated immediately, it can sometimes take a bit oftime for your calendar app (ie Google Calendar, Apple iCalendar, or Outlook) to fetch the updated schedules. Often you can set the update frequency in the settings of your calendar app.
    
                    ---
    
                    Incorrect? Open an issue here: https://github.com/beyarkay/eskom-calendar/issues/new
    
                    Generated byBoyd Kane's eskom-calendar: https://eskomcalendar.co.za/ec?calendar=buffalo-city-block-1.ics.
    
                    National loadshedding information scraped from https://twitter.com/Eskom_SA/status/1667876251464335361.
    
                    Calendar compiled onSunday 11 Jun 2023 at 13:31:03 (UTC+02:00) by run https://github.com/beyarkay/eskom-calendar/actions/runs/5235724964.
    
                    eskom-calendar version: https://github.com/beyarkay/eskom-calendar/tree/5cdc7ed3c3648a456d42af8728075b09af5ec019
    
        18:00-19:00 ⚠️  End of schedule
                    This is the end of the known loadshedding schedule.
    
                    Unfortunately only a few days worth of loadshedding schedules are released at a time. An update to the loadshedding schedule is usually announced a day or two before the previous schedule runs out, so this event will move in your calendar as new schedules are announced.
    
                    You don't have to do anything, but just know that there might be loadshedding after this point, but there also might not. It's impossible to say for sure.
    
                    Incorrect? Open an issuehere: https://github.com/beyarkay/eskom-calendar/issues/new
    
                    ---
                    Generated by Boyd Kane's eskom-calendar: https://github.com/beyarkay/eskom-calendar/tree/5cdc7ed3c3648a456d42af8728075b09af5ec019
    
                    Calendar compiled at 2023-06-11T13:31:03.330216061+00:00
    

    The former is quite a bit more readable.

    enhancement 
    opened by beyarkay 3
  • feat: Add URL capabilities

    feat: Add URL capabilities

    This commit allows the value specified as the first commandline argument to be a URL, in which case it is downloaded (via a blocking reqwest) and parsed into a Calendar struct

    I couldn't find many ICS URLs online, but I use them a bunch for my project eskom-calendar, so here are some of those as examples:

    ╰→ cargo run -- https://github.com/beyarkay/eskom-calendar/releases/download/latest/buffalo-city-block-1.ics
        Finished dev [unoptimized + debuginfo] target(s) in 0.14s
         Running `target/debug/calio 'https://github.com/beyarkay/eskom-calendar/releases/download/latest/buffalo-city-block-1.ics'`
    
    Sun Jun 11 2023
        16:00-18:00 🔌BuffaloCityBlock1 Stage 4 😣
                    This event shows that there will be loadshedding on Sunday from 16:00 to Sunday at 18:00 in the load shedding area buffalo-city-block-1.
    
    Mon Jun 12 2023
        21:00-00:00 🔌BuffaloCityBlock1 Stage 3 😟
                    This event shows that there will be loadshedding on Monday from 21:00 to Tuesday at 00:00 in the load shedding area buffalo-city-block-1.
    
    Wed Jun 14 2023
        16:00-18:00 🔌BuffaloCityBlock1 Stage 3 😟
                    This event shows that there will be loadshedding on Wednesday from 16:00 to Wednesday at 18:00 in the load shedding area buffalo-city-block-1.
    
        18:00-19:00 ⚠️  End of schedule
                    This is the end of the known loadshedding schedule.
    
    enhancement 
    opened by beyarkay 1
Releases(v1.1.0)
Owner
Oscar Cortez
🐍 & 🦄 👨‍💻 at @netlandish
Oscar Cortez
A simple CLI tool for converting CSV file content to JSON.

fast-csv-to-json A simple CLI tool for converting CSV file content to JSON. 我花了一個小時搓出來,接著優化了兩天的快速 CSV 轉 JSON CLI 小工具 Installation Install Rust with ru

Ming Chang 3 Apr 5, 2023
Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're working with files or directories, this tool simplifies common file operations with ease.

Rust FileOps Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're w

Harikesh Ranjan Sinha 5 May 2, 2024
Mafa is a command-line tool that helps people interact with online websites in a terminal(tty).

Table of Contents A Small Demo Installation Prerequisite Option 1: Cargo install (recommended) Option 2: Build from source Option 3: Prebuilt binaries

Michael Lee 6 Jul 10, 2023
Mafa is a command-line tool that helps people interact with online websites in a terminal(tty).

A Small Demo Installation Prerequisite Option 1: Cargo install (recommended) Option 2: Build from source Option 3: Prebuilt binaries Mafa is for me? W

Michael Lee 6 Jul 23, 2023
A Rust CLI tool that helps you enforce Git policies through Git hooks both server and client side

GitPolicyEnforcer This is a command line utility written in Rust, that helps you utilize Git hooks, to enforce various policies. It currently supports

Vagelis Prokopiou 4 Aug 14, 2022
Sleek is a CLI tool for formatting SQL. It helps you maintain a consistent style across your SQL code, enhancing readability and productivity.

Sleek: SQL Formatter ✨ Sleek is a CLI tool for formatting SQL. It helps you maintain a consistent style across your SQL code, enhancing readability an

Nick Rempel 40 Apr 20, 2023
:large_orange_diamond: Build beautiful terminal tables with automatic content wrapping

Comfy-table Comfy-table tries to provide utility for building beautiful tables, while being easy to use. Features: Dynamic arrangement of content to a

Arne Beer 525 Jan 8, 2023
A Content Discovery Tool insipired from Feroxbuster. Work In Progress

monologue A Content Discovery Tool written in Rust, insipired from Feroxbuster. Installation Dependencies OpenSSL (If You are on linux). Rust programm

Voyage 3 Jul 20, 2023
This tool was developed as part of a course on forensic analysis and cybersecurity. It is intended to be used as a training resource to help students understand the structure and content of job files in Windows environments.

Job File Parser Job File Parser is a Rust-based tool designed for parsing both legacy binary job files and modern XML job files used by the Windows Ta

Mehrnoush 3 Aug 12, 2024
gfold is a CLI-driven application that helps you keep track of multiple Git repositories.

gfold is a CLI-driven application that helps you keep track of multiple Git repositories.

Nick Gerace 215 Jan 4, 2023