Skip to content

kebab0o/CalendarCLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Command-Line Calendar Project

The Command-Line Calendar is a cross-language CLI application for event and task management, implemented in Python, C#, and JavaScript. Users can add, modify, delete, and list tasks or events, while also leveraging notifications and calendar views. Each version utilizes the unique strengths of its programming language to deliver a robust and efficient user experience.


Project Goals

The project aims to provide a lightweight, intuitive, and cross-platform way to manage events directly from the command line, complete with notifications and calendar display features.


Features

  • Calendar Display: View current or specified month/year.
  • Event Management:
    • Add, modify, delete, and list events.
    • Mark events as finished.
    • Notifications for scheduled events (Python and C# versions).
  • Data Storage: JSON files store ongoing and completed events for persistence.
  • Multi-language Support: Implementations in Python, C#, and JavaScript.

Repository Structure

cli-calendar/
├── C#/
│   ├── WatcherService/
│   │   ├── WatcherS.exe
│   │   ├── Program.cs
│   │   ├── WatcherS.csproj
│   ├── CalendarProgram/
│       ├── CalendarCLI.exe
│       ├── Program.cs
│       ├── CalendarCLI.csproj
├── PY/
│   ├── cli_calendar.py
│   ├── cli_utils.py
│   ├── notifications_utils.py
│   ├── watcher.py
├── JS/
│   ├── text_calendar.js
│   ├── cli_calendar.js
│   ├── cal_utils.js
|   |── notification_watcher.js
├── README.md

Installation

Clone the Repository

git clone https://github.com/kebab0o/CalendarCLI.git
cd cli-calendar

Download the C# Executables

The C# .exe files are hosted externally due to GitHub's file size limits. Download them from the following Mega link:

Download C# Executables


Language-Specific Details

Python Version

The Python implementation supports notifications on Windows using win10toast.

Setup

  1. Ensure Python is installed.

  2. Install dependencies:

    pip install win10toast

Usage Examples

  • Add Event:

    python cli_calendar.py add "Event Title" "2024-11-15" -d "Description" -t "09:00" -n "2024-11-15-07:00"
  • Show Calendar:

    python cli_calendar.py show -y 2024 -m 11

Dependencies

  • argparse
  • json
  • datetime
  • time
  • win10toast

C# Version

The C# implementation includes event notifications and a calendar display, powered by the .NET framework.

Setup

  1. Ensure the .NET SDK is installed.

  2. Install dependencies with NuGet:

    dotnet add package Newtonsoft.Json
    dotnet add package System.CommandLine
    dotnet add package Microsoft.Toolkit.Uwp.Notifications
  3. Run the Calendar application:

    dotnet run

    OR: Paste the CalendarCLI.exe into your CMD's PATH folder (usually C:\Windows\System32).
    Run the WatcherS.exe as administrator (or use the script to autorun it during Windows startup).
    Open Command Prompt (cmd) as administrator and use the application accordingly.

Usage Examples

  • Add Event:

    dotnet run Add "Event Title" "2024-11-15" -d "Description"
  • Show Calendar:

    dotnet run calendar -y "2024" -m "11"

Dependencies

  • Newtonsoft.Json
  • System.CommandLine
  • Microsoft.Toolkit.Uwp.Notifications

JavaScript Version

The JavaScript version focuses on task management and calendar views with a lightweight Node.js implementation.

Setup

  1. Ensure Node.js is installed.

  2. Install dependencies:

    npm install commander node-notifier
  3. Run the application:

    node cli_calendar.js <command>

Usage Examples

  • Show Current Month:

    node cli_calendar.js show
  • Add Event:

    node cli_calendar.js add 2024 11 15 "My Task"

Dependencies

  • commander
  • node-notifier

Showcasing

Below are examples of how the applications appear in action:

Notifications

C# Notification JS Notification Python Notification

Command Prompt Demo

CMD Demo CMD Demo 2 JSON Events file


License

This project is licensed under the MIT License.


We wish you a smooth and joyful experience using our CMD Calendar!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages