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
Metadata
Release files for schedulr 0.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| schedulr-0.0.6.tar.gz | 25.0 kB | Without provenance | Details for schedulr-0.0.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| schedulr-0.0.6-py3-none-any.whl | Python 3 | none | any | Details for schedulr-0.0.6-py3-none-any.whl |
Total release size: 47.8 kB
Release files / schedulr-0.0.6.tar.gz
| Download URL | schedulr-0.0.6.tar.gz |
|---|---|
| Size | 25.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e8ccde55ec1e0947378f2129c75257d987fe673ce842e4dd79f00c9a35bda225
|
|
BLAKE2b-256 checksum How to use checksums |
59b7854d6f57f29148b3c14b0398943ffcaecb08b79beb0c6b9978e39c4b8fe6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / schedulr-0.0.6-py3-none-any.whl
| Download URL | schedulr-0.0.6-py3-none-any.whl |
|---|---|
| Size | 22.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
27a66dad149b384c89d34b9a13983e0b4495e5422ca8d12897dd5be205649c65
|
|
BLAKE2b-256 checksum How to use checksums |
7aa572089b46434d981cb2cc3e6b51afa9607ad90560bf0b91b4bc794fe7b0d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Security for schedulr 0.0.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.