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.1.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.1-py3-none-any.whl (391.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dash_fullcalendar-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 44bbc2cd47e332bfa45962abfca4de4b9e91eb1b56241be596b9eb5327da594d
MD5 91b35a164024cea358cfc41be09f4b97
BLAKE2b-256 2ff440d2582c70bc8478732cb1c3b7c88e38c83d4982ebd3501cbcf953fe14e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dash_fullcalendar-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d12fd95ca7b8b2d528df1881aa88a9a4a884aa16e218f16ff59ec5f0387acf44
MD5 ccc9788d105aadff4b70386302e418d1
BLAKE2b-256 0dc8547ed7e4ce25f96d338802730457a33478901e28cd2242a8fb8cb633a1f1

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