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

Stable release (from PyPI)

pip install dash-fullcalendar

No Node.js required at install time.
Pre‑built JavaScript bundles ship inside the wheel.


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
    

Releasing

npm run build:all          # 1️⃣ compile JS
python -m build            # 2️⃣ build wheel + sdist
twine upload dist/*        # 3️⃣ publish to PyPI
npm publish                # 4️⃣ publish to npm (optional)
git tag vX.Y.Z && git push --tags

Because the wheel already contains the JS bundle (see MANIFEST.in), end users do not need Node or npm.


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 YOUR NAME

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.0.tar.gz (404.4 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.0-py3-none-any.whl (406.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dash_fullcalendar-0.1.0.tar.gz
  • Upload date:
  • Size: 404.4 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.0.tar.gz
Algorithm Hash digest
SHA256 8ec2657f74af42f7c452dc08a7f6b04cd556cfd55a6d000f58e1e8a3481e2f18
MD5 51b59864e145ceb2a831f4caccd2af8f
BLAKE2b-256 cecff7f7fd4e01ecf1f67550cc2a79dd145f0fab69aba16e151f6652fcf624dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dash_fullcalendar-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3704d8cc04c8784f3ab98360ff43bed3b62c6fa58234ad6472103b64949636c5
MD5 8707a14c93c5d1bc9a4bb4ecf8b70347
BLAKE2b-256 655c40e188d7078102f2b62af6045c07fa3ad9d849a3cdd8ddea0c44aeff2622

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