A terminal-based task management application with calendar visualization and CalDAV compatibility.
- C++ compiler with C++17 support
- CMake (version 3.10 or higher)
- nlohmann/json library
- Clone the repository:
git clone [repository-url]
cd taskManager- Build using CMake:
cmake .
make- Run the application:
./src/taskmanagerAlternative build method using Makefile:
cd src
make
./taskmanager- Add, edit, and delete tasks with deadlines
- Mark tasks as complete/incomplete
- View all tasks or filter by completion status
- Tasks persist between sessions in
tasks.dat
- Visual calendar display with task indicators
- Navigate between months to view scheduled tasks
- Customizable calendar appearance (colors, cell dimensions, formatting)
- Export tasks to ICS format for calendar applications
- Generate ICS files that can be imported into CalDAV-compatible applications
- Automatic ICS file generation on task updates
- Integration with standard calendar applications
- Add your CalDAV calendar to your calendar application to sync directly upon adding a new task.
- Customizable settings stored in
config.json - Adjust calendar colors, cell dimensions, and display preferences
- Settings persist between sessions
Launch the application and use the following commands:
nt <description> [deadline]- Add a new task with optional deadline (YYYY-MM-DD [HH:MM]). If no deadline is provided, defaults to the end of the current day.ls- List all pending taskslsa- List all tasks including completed onesft <id>- Mark a task as completeddt <id>- Delete a taskct- Clear all tasksh- Show help messageexit- Exit the program
c- Display calendar for current monthn- Display calendar for next monthp- Display calendar for previous monthdc <Month name or number>- Display calendar for specified month (1-12 or month name)
fetch- Get your current configurationssh <height>- Set a new height for calendar cells (5-10)sw <width>- Set a new width for calendar cells (12-40)t- Toggle whether your calendar app is opened upon adding a new taskstc- Change the text colorscc- Change the calendar border colorsec- Change the color of events on the calendarstb- Change whether the text appears boldscb- Change whether the calendar borders appear boldsort- Configure how the events are sorted when listed
Use the h command within the application to display all available commands and their functions.
- Tasks: Stored in binary format in
tasks.dat - Configuration: JSON format in
config.json - Calendar Export: ICS files for calendar integration
Mainly tested on a Linux device, but has integration for Windows and MacOS
Terminal color support and ANSI escape sequences are used for enhanced visual display.
