Skip to main content

Linear Calendar Integration - Visualize Linear issues on a calendar interface

Project description

LinCal - Linear Calendar

A web application that displays Linear issues on a calendar interface. Similar to lincal.app, this app allows you to visualize your Linear tasks in a calendar view.

Features

  • View Linear issues on a calendar by due date
  • Filter issues by team and state
  • View detailed information about each issue
  • Link directly to issues in Linear
  • Responsive design

Setup (Using UV - Recommended)

  1. Clone this repository
  2. Install UV if you don't have it already:
    pip install uv
    
  3. Create and activate a virtual environment:
    uv venv
    # On Windows
    .venv\Scripts\activate
    # On macOS/Linux
    source .venv/bin/activate
    
  4. Install dependencies:
    uv pip install -e .
    
  5. Create a .env file by copying .env.example:
    cp .env.example .env
    
  6. Add your Linear API key and optional port to the .env file:
    LINEAR_API_KEY=lin_api_xxxxxxxxxxxx
    PORT=5000
    

    You can generate an API key in Linear by going to Settings > API > Personal API Keys The PORT is optional and defaults to 5001 if not specified

Setup (Using pip - Legacy)

  1. Clone this repository
  2. Install dependencies:
    pip install -r requirements.txt
    
  3. Follow steps 5-6 above for environment setup.

Running the Application

Start the Flask development server with UV (recommended):

uv python app.py

Or with standard Python:

python app.py

The application will be available at http://localhost:5000

Development

Project Structure

linear-cal/
├── app.py                # Flask application
├── requirements.txt      # Python dependencies
├── .env                  # Environment variables (not committed)
├── templates/
│   └── index.html        # Main HTML template
└── static/
    ├── css/
    │   └── styles.css    # Application styles
    └── js/
        └── calendar.js   # Calendar functionality

API Endpoints

  • /api/issues - Get Linear issues within a date range
  • /api/teams - Get all teams from Linear

Distribution and Deployment

Distribution with UV

To distribute this application so others can install it, you have several options:

1. GitHub Repository (Recommended)

Share your GitHub repository URL. Users can install directly from GitHub:

# Install UV if not already installed
pip install uv

# Create and activate a virtual environment
uv venv
# On Windows
.venv\Scripts\activate
# On macOS/Linux
source .venv/bin/activate

# Install the app directly from GitHub
uv pip install git+https://github.com/yourusername/linear-cal.git

2. PyPI Publication

Publish to PyPI for installation with UV:

# Build the package
uv pip install build
python -m build

# Upload to PyPI
uv pip install twine
twine upload dist/*

Users can then install with:

uv pip install linear-cal

Deployment

This application can be deployed to platforms like Heroku, Render, or any service that supports Python web applications.

Make sure to set the LINEAR_API_KEY environment variable in your deployment environment.

Deployment with UV

If deploying to a custom server, install UV and use it for dependency management:

# On your server
pip install uv
uv venv
source .venv/bin/activate
uv pip install git+https://github.com/yourusername/linear-cal.git

# Set environment variable
export LINEAR_API_KEY=your_api_key

# Run with gunicorn (for production)
uv pip install gunicorn
gunicorn app:app

Technologies Used

  • Backend: Flask (Python)
  • Frontend: HTML, CSS, JavaScript
  • Calendar: FullCalendar
  • API Integration: Linear GraphQL API

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

lincal-0.1.0.tar.gz (3.2 kB view details)

Uploaded Source

Built Distribution

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

lincal-0.1.0-py3-none-any.whl (2.9 kB view details)

Uploaded Python 3

File details

Details for the file lincal-0.1.0.tar.gz.

File metadata

  • Download URL: lincal-0.1.0.tar.gz
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for lincal-0.1.0.tar.gz
Algorithm Hash digest
SHA256 06e73a7db405cb7909543e1fbeb090578b1df36ec82cec8ca24d23c86665ea71
MD5 579728652b02a73d2ff8ea09e827945e
BLAKE2b-256 4b66de5bbfb842e301c7d9bf6cd42294e2a1f09f413fe28d3d5576d4e1918536

See more details on using hashes here.

File details

Details for the file lincal-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: lincal-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for lincal-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 01803a3e806fd05ee9a78b06f7b1aade26ef50c2111fb06f49c2164b95986722
MD5 01fe27c69cb37147b7071c75ae3bc87a
BLAKE2b-256 0286b791762f49888996c03e77d746fd4b1e99aa5436d0d2cc605c8b7a47ea60

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