A handy command-line utility for generating and sending iCalendar events

Overview

A handy command-line utility for generating and sending iCalendar events

This simple command-line utility is designed to generate an iCalendar event, and sending it out as an email to the attendees.

Why Do We Need This?

It is written out of my frustration that very few applications allowed me to very quickly generate a simple and clean iCalendar event file (.ics), which I can attach and email out to the attendees.

For example, I can try to produce such an event file in the Calendar app in macOS, but once I need to add a few attendees, the app will force me to send invitations out before I am allowed to save the event file. To make the process even more cumbersome, the attendees are required to be in the Contacts app, and the only way to save the event file in Calendar is to mail the event and then save the attachment.

As another example, while Google Calendar is able to construct the event and send an email message to the attendees, the From address of the invitation email is not configurable and must be a gmail.com address, and the content of the message is also not configurable.

What Does the Utility Do?

Instead of using calendar applications such as Calendar and Microsoft Outlook, this utility generates a single event as an iCalendar file (.ics). Most information, including a summary (title) of the event, its location (multiple lines are allowed), its date and time, the names and email addresses of its attendees, can be entered when running this utility.

The name and email address of the organizer, the default timezone, as well as the number of minutes before the event when a default alarm will be displayed, can be read from a configuration file in YAML format. The default location for this configuration file is ical.yml in the same directory.

Once the iCalendar event file has been generated, the utility will send it out as an attachment automatically to all the attendees if needed. The subject of the outgoing email message is the same as the summary (title) of the event, and the content of the email message can be composed on-the-fly when prompted. In order to send an email using an existing mail server, the domain name, username, and password of the mail server need to be added to the configuration file (ical.yml).

Note: If you are trying to use certain mail servers (such as gmail.com) to send emails from Python, you may need to generate an app-specific password. For gmail.com, you may also need to allow less secure apps in your account.

Installing and Running the Utility

To install the dependencies in your Python environment, run:

pip install -r requirements.txt --upgrade

To run the utility:

python ical.py

Enjoy!

Owner
Baochun Li
Baochun Li
3DigitDev 29 Jan 17, 2022
Darkdump - Search The Deep Web Straight From Your Terminal

Darkdump - Search The Deep Web Straight From Your Terminal About Darkdump Darkdump is a simple script written in Python3.9 in which it allows users to

Josh Schiavone 264 Dec 30, 2022
A python Ethereum utilities command-line tool.

peth-cli A python Ethereum utilities command-line tool. After wasting the all day trying to install seth and failed, I took another day to write this.

Moon 55 Nov 15, 2022
🎈 `st` is a CLI to quickly kick-off your new Streamlit project

🎈 st - a friendly Streamlit CLI st is a CLI that helps you kick-off a new Streamlit project so you can start crafting the app as soon as possible! Ho

Arnaud 18 Dec 19, 2022
A set of libraries and functions for simplifying automating Cisco devices through SecureCRT.

This is a set of libraries for automating Cisco devices (and to a lesser extent, bash prompts) over ssh/telnet in SecureCRT.

Matthew Spangler 7 Mar 30, 2022
Random scripts and other bits for interacting with the SpaceX Starlink user terminal hardware

starlink-grpc-tools This repository has a handful of tools for interacting with the gRPC service implemented on the Starlink user terminal (AKA "the d

270 Dec 29, 2022
Wordle-solver - A tool that helps people who struggle with vocabulary to enjoy the famous game of WORDLE

Wordle-Solver Wordle-Solver helps people who struggle with vocabulary to enjoy t

Jason Chao 104 Dec 31, 2022
Sebuah tools agar tydak menjadi sider :v vrohh

Sebuah tools agar tydak menjadi sider :v vrohh

xN7-SEVEN 1 Mar 27, 2022
Generate an ASCII Art from keyword put in the cli

ascii-art-generator-cli Generate an ASCII Art from keyword put in the cli Install git clone https://github.com/Nathanlauga/ascii-art-generator-cli cd

Nathan Lauga 1 Nov 14, 2021
A mini command line tool to spellcheck text files using tadqeek.alsharekh.org

tadqeek_sakhr A mini command line tool to spellcheck text files using tadqeek.alsharekh.org Usage usage: python tadqeek_sakhr.py [-h] -i INPUT [-o OUT

Youssif Shaaban Alsager 5 Dec 11, 2022
Shellmon is a tool used to create and control a webshell remotely, created using the Python3

An Simple PHP Webshell Manager Description Shellmon is a tool used to create and control a webshell remotely, created using the Python3 programming la

22XploiterCrew 12 Dec 30, 2022
Pyrdle - Play Wordle in the CLI. Write an algorithm to play Wordle for you. Ruin all of the fun you've been having

Pyrdle - Play Wordle in the CLI. Write an algorithm to play Wordle for you. Ruin all of the fun you've been having

Charles Tapley Hoyt 11 Feb 11, 2022
A simple web-based SSH client.

Kommander A simple web-based SSH client. It supports: entering SSH login details (including private key and custom ports) and connecting user authenti

KingWaffleIII 2 Jan 01, 2022
Juniper Command System is a Micro CLI Tool that allows you to manage your files, launch applications, as well as providing extra tools for OS Management.

Juniper Command System is a Micro CLI Tool that allows you to manage your files, launch applications, as well as providing extra tools for OS Management.

Juan Carlos Juárez 1 Feb 02, 2022
Basic python tools to generate shellcode runner in vba

vba_bin_runner Basic python tools to generate shellcode runner in vba. The stub use ZwAllocateVirtualMemory to allocate memory, RtlMoveMemory to write

4 Aug 24, 2021
Ideas on how to quickly learn to build command-line tools

CLI-Bootcamp Ideas on how to quickly learn to build command-line tools Part 1-Bash Week1: Using Linux Lesson 1: Using Linux Shell Lab Lesson 2: How sh

Noah Gift 10 Apr 18, 2022
RSS reader client for CLI (Command Line Interface),

rReader is RSS reader client for CLI(Command Line Interface)

Lee JunHaeng 10 Dec 24, 2022
sync-my-tasks is a CLI tool that copies tasks between apps.

sync-my-tasks Copy tasks between apps Report a Bug · Request a Feature . Ask a Question Table of Contents Table of Contents Getting Started Developmen

William Hutson 2 Dec 14, 2021
A Python3 rewrite of my original PwnedConsole project from almost a decade ago

PwnedConsoleX A CLI shell for performing queries against the HaveIBeenPwned? API to gather breach information for user-supplied email addresses. | wri

1 Jul 23, 2022