ungana

Client application that creates customized .ics files for ticket booking and event reservations
Info | Log | Files | Refs | README

Ungana

Ungana is a Python CLI tool for creating customized iCalendar (.ics) files.

Requirements

Create a Virtual Environment

First, create and activate a virtual environment to isolate the project dependencies:

python3 -m venv venv
source venv/bin/activate

Installation

Editable Mode

cd ungana
pip install -e .

Without Installation

python3 -m ungana.runnable.ungana_cal_cli

Commands

1.Create

To create an event entry, the create command can be used as:

create -s SUMMARY [--sf SUMMARY_FILE] -d DESCRIPTION [--df DESCRIPTION_FILE] --start START -l LOCATION -o ORGANIZER --tzid TZID [--end END] [--duration DURATION]

Command Arguments

Option Required Input Type Description Format Example
-s, --summary Yes Freeform text Event title (short title shown in display). "Team Meeting"
-sf, --summary-file No File path string File containing the event summary. summary.txt
-d, --description Yes Freeform text Event details (brief, concise description). "Quarterly review"
-df, --description-file No File path string File containing the event description. description.txt
--start Yes Datetime Start time of the event. "10-09-2025 14:00" (or ISO format)
--end No Datetime End time of the event. "10-09-2025 16:00"
--duration No Duration string Duration of the event (alternative to --end). "PT2H" (ISO 8601)
-l, --location Yes Freeform string Event venue or location. "Conference Room A"
-o, --organizer Yes Freeform string Organizer’s contact (e.g., name or email). "events@company.com"
--tzid Yes Freeform string Timezone identifier "Africa/Nairobi"
-f, --file No Freeform string Output filename for the generated iCalendar file.
If not provided, a safe timestamped filename (e.g., event_20250820_083410.ics) will be used.
"team_meeting.ics"

2.Edit

Using the edit command, you can modify an existing ical file's fields.

edit -i ICAL_FILE_Path -s [SUMMARY] -d [DESCRIPTION] --start [START] -l [LOCATION] -o [ORGANIZER] ...

Option Required Description Format Example
-i, --ical Yes Path to ical file "/events/ical.ics"
-a, --all No Apply to all events in the iCal file. If omitted, only the first event is modified. -
-c, --contact No Contact information "events@abc.org"
-p, --poster No Event headline image "events/posters/poster.png"
-ld, --long No Exhaustive description of the event "events/team/event_description.txt"