Skip to main content

A Plotly Dash wrapper for FullCalendar

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

  1. 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
    
  2. 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
    
  3. Watch & develop

    In one shell:

    npm start            # rebuild JS on change
    

    In another:

    python usage.py      # auto‑reload Dash
    
  4. Run tests

    pytest -q
    

Contributing

Pull requests welcome! To get a change accepted:

  1. Open an issue first for large changes.
  2. Fork, create a descriptive branch name.
  3. Follow Conventional Commits in your commit messages.
  4. npm test and pytest must pass locally—CI will enforce this.
  5. Submit your PR; a maintainer will review and merge.

License

MIT © 2025 Scott Kilgore

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

dash_fullcalendar-0.1.2.tar.gz (389.0 kB view details)

Uploaded Source

Built Distribution

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

dash_fullcalendar-0.1.2-py3-none-any.whl (391.3 kB view details)

Uploaded Python 3

File details

Details for the file dash_fullcalendar-0.1.2.tar.gz.

File metadata

  • Download URL: dash_fullcalendar-0.1.2.tar.gz
  • Upload date:
  • Size: 389.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.0

File hashes

Hashes for dash_fullcalendar-0.1.2.tar.gz
Algorithm Hash digest
SHA256 deae45ef409b0952b52a9511021e5187ed4a1ce21023d32ffc2f7ad8f21111e9
MD5 262970b14b81de97645feca6329f6383
BLAKE2b-256 59a04b4e7b9357fc2e94a75924e7fb393855cf8ff3a279e5f67d8657cafd4779

See more details on using hashes here.

File details

Details for the file dash_fullcalendar-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for dash_fullcalendar-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 63b347000202a33b44103cf146cf00dac9d952cecdb647c9421a60644091ce10
MD5 ca0d39137fd1c0e307ed5f08cad7f6bc
BLAKE2b-256 1cb18b5c7acc09e0fa348a4aa177a8c6c35d698eee045accfd69140d12db7350

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