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 & Filter: 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
git clone https://github.com/MadushankaRajapaksha/-Schedulr-
cd schedulr
# Install in development mode
pip 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
git clone <repository-url>
cd schedulr
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Install in development mode
pip install -e .
# Run in development mode
python -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
Dependencies
[project]
dependencies = [
"rich",
"textual"
]
Troubleshooting
Common Issues
Application Won't Start
# Check Python version
python --version # Should be 3.8+
# Verify installation
pip show schedulr
Database Issues
# Reset database (WARNING: Deletes all tasks)
del 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.
Acknowledgments
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file schedulr-0.0.6.tar.gz.
File metadata
- Download URL: schedulr-0.0.6.tar.gz
- Upload date:
- Size: 25.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e8ccde55ec1e0947378f2129c75257d987fe673ce842e4dd79f00c9a35bda225
|
|
| MD5 |
8ddec27521c9eb8bcc595eb312fcc949
|
|
| BLAKE2b-256 |
59b7854d6f57f29148b3c14b0398943ffcaecb08b79beb0c6b9978e39c4b8fe6
|
File details
Details for the file schedulr-0.0.6-py3-none-any.whl.
File metadata
- Download URL: schedulr-0.0.6-py3-none-any.whl
- Upload date:
- Size: 22.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27a66dad149b384c89d34b9a13983e0b4495e5422ca8d12897dd5be205649c65
|
|
| MD5 |
1e5b3486f7bb7bf232287f6ea419a0f1
|
|
| BLAKE2b-256 |
7aa572089b46434d981cb2cc3e6b51afa9607ad90560bf0b91b4bc794fe7b0d3
|