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)
- Clone this repository
- Install UV if you don't have it already:
pip install uv - Create and activate a virtual environment:
uv venv # On Windows .venv\Scripts\activate # On macOS/Linux source .venv/bin/activate - Install dependencies:
uv pip install -e . - Create a
.envfile by copying.env.example:cp .env.example .env - Add your Linear API key and optional port to the
.envfile:LINEAR_API_KEY=lin_api_xxxxxxxxxxxx PORT=5000You 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)
- Clone this repository
- Install dependencies:
pip install -r requirements.txt - 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
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06e73a7db405cb7909543e1fbeb090578b1df36ec82cec8ca24d23c86665ea71
|
|
| MD5 |
579728652b02a73d2ff8ea09e827945e
|
|
| BLAKE2b-256 |
4b66de5bbfb842e301c7d9bf6cd42294e2a1f09f413fe28d3d5576d4e1918536
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01803a3e806fd05ee9a78b06f7b1aade26ef50c2111fb06f49c2164b95986722
|
|
| MD5 |
01fe27c69cb37147b7071c75ae3bc87a
|
|
| BLAKE2b-256 |
0286b791762f49888996c03e77d746fd4b1e99aa5436d0d2cc605c8b7a47ea60
|