[ English | 日本語 ]
A small command-line tool for building and editing iCalendar (.ics) files. Designed for managing personal holiday and event calendars from the terminal.
init— create a new ICS calendar fileadd— add an all-day event (single day or multi-day range)list— list events, optionally sorted, optionally as JSONicons— show the bundled preset icon namesremove— delete events by index, range, or summary- Microsoft-style busy status (
FREE/TENTATIVE/BUSY/OOF/WORKINGELSEWHERE) - Event classification (
PUBLIC/PRIVATE/CONFIDENTIAL) - Categories and an
X-MAKEHOLIDAY-ICONvendor extension
cargo install --path .Or run locally without installing:
cargo run -- <subcommand> [options]All commands accept a global --file / -f flag (default: calendar.ics).
makeholiday init
makeholiday --file holidays.ics init# Single-day event
makeholiday add --summary "New Year's Day" --start 2026-01-01
# Multi-day range (inclusive)
makeholiday add --summary "Year-end break" --start 2026-12-29 --end 2027-01-03
# With busy status, class, categories and icon
makeholiday add \
--summary "Business trip" \
--start 2026-05-10 --end 2026-05-12 \
--busystatus oof \
--class private \
--category work --category travel \
--icon airplane
# Interactive (prompts for summary, start, end)
makeholiday addDate formats accepted: YYYY-MM-DD and YYYY/M/D.
makeholiday list
makeholiday list --sort start
makeholiday list --sort start --sort summary --desc
makeholiday list --jsonmakeholiday icons# By 1-based index, range, or mixed list
makeholiday remove 1
makeholiday remove 2,4
makeholiday remove 1,3-5,8
# By summary
makeholiday remove --summary "New Year's Day"
# Interactive (lists events and prompts)
makeholiday remove- iCalendar (RFC 5545)
VCALENDARwithVEVENTentries - All-day events (
DTSTART;VALUE=DATE,DTEND;VALUE=DATE) DTENDis exclusive per RFC 5545; CLI inputs treat--endas inclusive and adjust automatically
See docs/PRD.md for product direction (CRUD enhancement, Outlook / Google / iCloud extension support, RFC compliance vs vendor extension boundary, and a reusable ICS handling library).
- SETUP — installation and platform setup
- USAGE — comprehensive command reference
- PRD — product requirements
- ADR policy — how architectural decisions are recorded
- CONTRIBUTING — development guidelines
- Japanese README
See docs/CONTRIBUTING.md.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT license (LICENSE-MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.