📆 A Streamlit component to show callendar using FullCalendar (https://fullcalendar.io)
Project description
streamlit-calendar 📆
A Streamlit component to show calendar view using FullCalendar
Demo
Installation
pip install streamlit-calendar
Usage
from streamlit_calendar 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": "Auditorium A"},
{"id": "b", "building": "Building A", "title": "Auditorium B"},
{"id": "c", "building": "Building B", "title": "Auditorium C"},
{"id": "d", "building": "Building B", "title": "Auditorium D"},
{"id": "e", "building": "Building C", "title": "Auditorium E"},
{"id": "f", "building": "Building C", "title": "Auditorium 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
See the demo app for a detailed demo!
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.git
cd streamlit-calendar
Install the Python dependencies:
poetry install
And install the frontend dependencies:
cd streamlit_calendar/frontend
npm install
Making changes
To make changes, first go to streamlit_calendar/__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/frontend
npm start
This starts the frontend code on port 3001.
Open another terminal and run:
cd streamlit_calendar
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
and the demo app should update automatically!
If nothing updates, make sure the variable _RELEASE
in streamlit_calendar/__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
Hashes for streamlit_calendar-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d5d00fbedd60897552e02ded26d7d23b7ee4d1b7d43696da556c1f4247d6d819 |
|
MD5 | 538e9d5cf5b470f9105648c28c662d49 |
|
BLAKE2b-256 | 99d3c047718d68745dc15767b89e01f895620360bc0b04889834a31b0534588b |