A smart terminal scheduler with natural language input and ASCII calendar visualization.
Project description
Schedulr - Smart Terminal Task Scheduler
A beautiful, feature-rich terminal-based task scheduler with a calendar visualization and desktop notifications.
Features
Core Functionality
- Beautiful Terminal Interface: Rich, colorful TUI built with Textual framework
- SQLite Database: Persistent storage for all your tasks
- Calendar View: Visual monthly calendar with task indicators
- Search & Filterlter: Quickly find tasks by title
- Task Statistics: Overview of pending and completed tasks
Advanced Features
- Desktop Notifications: Get notified when tasks are due
- Settings Management: Customizable preferences and themes
- Responsive Design: Adaptive layout for different terminal sizes
Table of Contents
- Installation
- Quick Start
- Usage
- Task Management
- Calendar View
- Settings
- Development
- Troubleshooting
- Contributing
- License
Installation
Prerequisites
- Python 3.8 or higher
- A terminal with color support (recommended)
Install from PyPI (Recommended)
pip install schedulr
Install from Source
# Clone the repository
gitt clone https://github.com/MadushankaRajapaksha/-Schedulr-
cd schedulr
# Install in development mode
pipp install -e .
Verify Installation
schedulr
Quick Start
Launch the Application
# Launch the main interface
schedulr
Create Your First Task
- Launch Schedulr
- Click the ➕ Add Task button or press the navigation button
- Fill in the task details:
- Task Title: What needs to be done
- Date: When it should happen (YYYY-MM-DD format)
- Time: Hour and minute
- Click ✅ Save Task
Usage
Basic Navigation
- 🏠 Home: View all tasks with search and statistics
- ➕ Add Task: Create new tasks with the modal form
- 📅 Calendar: Monthly calendar view with task indicators
- ⚙️ Settings: Configure application preferences
Keyboard Shortcuts
- Tab: Navigate between interface elements
- Enter: Activate buttons and submit forms
- Escape: Close modals or go back
- Arrow Keys: Navigate in calendar view
Search Functionality
Use the search bar in the Home view to filter tasks by title.
Task Management
Creating Tasks
Tasks can be created through the ➕ Add Task modal with the following fields:
- Title: Task description (required)
- Date: Target date in YYYY-MM-DD format
- Time: Hour (0-23) and minute (0-59)
Task Status
Tasks have the following status levels:
- ⏳ Pending: Not yet completed
- ✅ Completed: Finished tasks
Task Operations
- View: Click on a date in the calendar to see tasks for that day.
- Edit: Modify task details.
- Delete: Remove tasks.
- Mark Complete: Change status to completed.
Calendar View
Monthly Overview
The calendar view displays:
- Month Navigation: Previous/Next month buttons
- Task Indicators: Days with tasks are highlighted
- Today Highlighting: Current date is specially marked
- Task Preview: Brief task list on each calendar day
Calendar Navigation
- ◀ Prev: Go to previous month
- Next ▶: Go to next month
- Keyboard: Use arrow keys for quick navigation
- Click Days: Click on calendar days to view tasks
Development
Development Setup
# Clone repository
gitt clone
l>
cd schedulr
# Create virtual environment
pythonn -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pipp install -r requirements.txt
# Install in development mode
pipp install -e .
# Run in development mode
pythonn -m schedulr
Project Structure
schedulr/
├── __main__.py # Entry point
├── cli.py # Main Textual TUI application
├── core.py # Database operations and task management
├── screens.py # Calendar screen and modal screens
└── notifier.py # Background notification system
data.db # SQLite database (created automatically)
README.md # This file
pyproject.toml # Project configuration and dependencies
ndencies
Dependencies
[project]
dependencies = [
"rich",
"textual"
]
Troubleshooting
Common Issues
Application Won't Start
# Check Python version
pythonn --version # Should be 3.8+
# Verify installation
pipp show schedulr
Database Issues
# Reset database (WARNING: Deletes all tasks)
dell data.db
schedulr
Display Problems
- Ensure terminal supports colors
- Try resizing terminal window
- Check font supports Unicode characters
Contributing
We welcome contributions! Please see our Contributing Guide for details.
License
This project is licensed under the MIT License - see the LICENSE file for details.