📆 A Streamlit component to show callendar using FullCalendar (https://fullcalendar.io)
Project description
streamlit-calendar-semver 📆
A Streamlit component to show calendar view using FullCalendar with support for Streamlit light/dark theme
Demo
Installation
pip install streamlit-calendar-semver
Usage
from streamlit_calendar_semver import calendar
calendar_options = {
"headerToolbar": {
"left": "today prev,next",
"center": "title",
"right": "resourceTimelineDay,resourceTimelineWeek,resourceTimelineMonth",
},
"slotMinTime": "06:00:00",
"slotMaxTime": "18:00:00",
"initialView": "resourceTimelineDay",
"resourceGroupField": "building",
"resources": [
{"id": "a", "building": "Building A", "title": "Building A"},
{"id": "b", "building": "Building A", "title": "Building B"},
{"id": "c", "building": "Building B", "title": "Building C"},
{"id": "d", "building": "Building B", "title": "Building D"},
{"id": "e", "building": "Building C", "title": "Building E"},
{"id": "f", "building": "Building C", "title": "Building F"},
],
}
calendar_events = [
{
"title": "Event 1",
"start": "2023-07-31T08:30:00",
"end": "2023-07-31T10:30:00",
"resourceId": "a",
},
{
"title": "Event 2",
"start": "2023-07-31T07:30:00",
"end": "2023-07-31T10:30:00",
"resourceId": "b",
},
{
"title": "Event 3",
"start": "2023-07-31T10:40:00",
"end": "2023-07-31T12:30:00",
"resourceId": "a",
},
]
calendar = calendar(events=calendar_events, options=calendar_options)
st.write(calendar)
For complete event
object properties, check out: https://fullcalendar.io/docs/event-object
For complete options
object properties, check: https://fullcalendar.io/docs
Development
Note: you only need to run these steps if you want to change this component or contribute to its development!
Setup
First, clone the repository:
git clone https://github.com/im-perativa/streamlit-calendar-semver.git
cd streamlit-calendar-semver
Install the Python dependencies:
poetry install
And install the frontend dependencies:
cd streamlit_calendar_semver/frontend
npm install
Making changes
To make changes, first go to streamlit_calendar_semver/__init__.py
and make sure the
variable _RELEASE
is set to False
. This will make the component use the local
version of the frontend code, and not the built project.
Then, start one terminal and run:
cd streamlit_calendar_semver/frontend
npm start
This starts the frontend code on port 3001.
Open another terminal and run:
cd streamlit_calendar_semver
poetry shell
streamlit run __init__.py
This runs the development version on local Streamlit server. Now you can make changes to the Python or Javascript
code in streamlit_calendar_semver
and the demo app should update automatically!
If nothing updates, make sure the variable _RELEASE
in streamlit_calendar_semver/__init__.py
is set to False
.
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
File details
Details for the file streamlit_calendar_semver-0.5.0.tar.gz
.
File metadata
- Download URL: streamlit_calendar_semver-0.5.0.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.8.17 Linux/5.15.0-1042-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2439c0604db566ba9161c48f0dafe18c226da15924fba4c6583a35006e2882dc |
|
MD5 | b2c6559830fd8694fa1bec8e00130ebd |
|
BLAKE2b-256 | 892c30ca2110555cf788a5188cc3ed286a75f37f7ec862c0b2d1dbc82e960189 |
File details
Details for the file streamlit_calendar_semver-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: streamlit_calendar_semver-0.5.0-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.5.1 CPython/3.8.17 Linux/5.15.0-1042-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1be334e38f4ca7db304816aaa0978f3690df5fe44d7e9696e62c9cc5f933fd80 |
|
MD5 | f5440271ff2904804b8489f88b6be36c |
|
BLAKE2b-256 | 88a996520389240956a1bfbeeaee8e795aaf47ef72623fe936ca4f8ce65eabef |