Skip to main content

A smart terminal scheduler with natural language input and ASCII calendar visualization.

Project description

Schedulr - Smart Terminal Task Scheduler

Python Version License: MIT Platform: Windows

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

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

  1. Launch Schedulr
  2. Click the ➕ Add Task button or press the navigation button
  3. 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
  4. 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

  • Textual for the beautiful TUI framework
  • Rich for enhanced terminal formatting

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

schedulr-0.0.6.tar.gz (25.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

schedulr-0.0.6-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

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

Hashes for schedulr-0.0.6.tar.gz
Algorithm Hash digest
SHA256 e8ccde55ec1e0947378f2129c75257d987fe673ce842e4dd79f00c9a35bda225
MD5 8ddec27521c9eb8bcc595eb312fcc949
BLAKE2b-256 59b7854d6f57f29148b3c14b0398943ffcaecb08b79beb0c6b9978e39c4b8fe6

See more details on using hashes here.

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

Hashes for schedulr-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 27a66dad149b384c89d34b9a13983e0b4495e5422ca8d12897dd5be205649c65
MD5 1e5b3486f7bb7bf232287f6ea419a0f1
BLAKE2b-256 7aa572089b46434d981cb2cc3e6b51afa9607ad90560bf0b91b4bc794fe7b0d3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page