A Plotly Dash wrapper for FullCalendar with premium (Scheduler) plugins bundled
Project description
Dash FullCalendar
A lightweight Dash component library that wraps @fullcalendar/react and exposes all free FullCalendar features to Plotly Dash.
Installation
pip install dash-fullcalendar
Quick start
from dash import Dash, html
import dash_fullcalendar as dcal
app = Dash(__name__)
app.layout = html.Div([
dcal.FullCalendar(
id="cal",
initialView="dayGridMonth",
editable=True,
selectable=True,
events=[
{"title": "Audit", "date": "2025-08-01"},
{"title": "Go‑Live", "date": "2025-08-10"},
],
)
])
if __name__ == "__main__":
app.run_server(debug=True)
Open http://127.0.0.1:8050 in your browser and enjoy a fully interactive calendar.
Repository layout
| Path | Purpose |
|---|---|
dash_fullcalendar/ |
Python package published to PyPI. Contains generated Dash component classes and pre‑compiled JS/CSS assets (_js_dist, _css_dist). |
src/ |
Raw React source for the wrapper. |
package.json, rollup.config.js |
JS build pipeline (npm run build:all). |
usage.py |
Minimal Dash demo used by tests. |
tests/ |
Integration tests with dash[testing] & pytest. |
docs/ |
Optional screenshots / GIFs shown in this README. |
.github/ |
CI workflows that run tests and publish to PyPI + npm. |
Ignored via .gitignore:
node_modules/dist/,build/,coverage/
Development
-
Clone and install dependencies
git clone https://github.com/YOUR_GH_USERNAME/dash-fullcalendar.git cd dash-fullcalendar npm install python -m venv venv && . venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt -r tests/requirements.txt
-
Build and run the example
npm run build:all # creates dash_fullcalendar/_dash_fullcalendar*.js pip install -e . python usage.py # open http://localhost:8050
-
Watch & develop
In one shell:
npm start # rebuild JS on change
In another:
python usage.py # auto‑reload Dash
-
Run tests
pytest -q
Contributing
Pull requests welcome! To get a change accepted:
- Open an issue first for large changes.
- Fork, create a descriptive branch name.
- Follow Conventional Commits in your commit messages.
npm testandpytestmust pass locally—CI will enforce this.- Submit your PR; a maintainer will review and merge.
License
MIT © 2025 Scott Kilgore
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 skinnycal-0.1.5.tar.gz.
File metadata
- Download URL: skinnycal-0.1.5.tar.gz
- Upload date:
- Size: 501.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9b5a02b1aea6af5a151cbf409f9cc5b7fa369bd619a85dc8ee4fe445ff50ff2
|
|
| MD5 |
9eff48422d2e9138ef6093add93fa04e
|
|
| BLAKE2b-256 |
5c02b4ee3cebd5a5a3946a72521f78dfcc68e6e0dee1cf06b425cbe60955ff3c
|
Provenance
The following attestation bundles were made for skinnycal-0.1.5.tar.gz:
Publisher:
publish.yml on PepijnWissing/skinnyCal
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skinnycal-0.1.5.tar.gz -
Subject digest:
d9b5a02b1aea6af5a151cbf409f9cc5b7fa369bd619a85dc8ee4fe445ff50ff2 - Sigstore transparency entry: 2046992042
- Sigstore integration time:
-
Permalink:
PepijnWissing/skinnyCal@9acc248f0300d4cc045950bbf1fffd7fa01d5622 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PepijnWissing
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9acc248f0300d4cc045950bbf1fffd7fa01d5622 -
Trigger Event:
push
-
Statement type:
File details
Details for the file skinnycal-0.1.5-py3-none-any.whl.
File metadata
- Download URL: skinnycal-0.1.5-py3-none-any.whl
- Upload date:
- Size: 504.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e31a562d7276c9d2ddeabe33a3775c382abd17beb7445bfa04002dbedbd42fd
|
|
| MD5 |
78a93d34dd8345c78186a020aa7d9980
|
|
| BLAKE2b-256 |
67b10b9de3c0cf8df28e025863c9d0d64ff74c96711376fcbf8017f00913643a
|
Provenance
The following attestation bundles were made for skinnycal-0.1.5-py3-none-any.whl:
Publisher:
publish.yml on PepijnWissing/skinnyCal
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
skinnycal-0.1.5-py3-none-any.whl -
Subject digest:
7e31a562d7276c9d2ddeabe33a3775c382abd17beb7445bfa04002dbedbd42fd - Sigstore transparency entry: 2046992108
- Sigstore integration time:
-
Permalink:
PepijnWissing/skinnyCal@9acc248f0300d4cc045950bbf1fffd7fa01d5622 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/PepijnWissing
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9acc248f0300d4cc045950bbf1fffd7fa01d5622 -
Trigger Event:
push
-
Statement type: