streamlit-calendar


Namestreamlit-calendar JSON
Version 1.2.1 PyPI version JSON
download
home_pagehttps://github.com/im-perativa/streamlit-calendar
Summary📆 A Streamlit component to show callendar using FullCalendar (https://fullcalendar.io)
upload_time2024-12-14 03:51:59
maintainerNone
docs_urlNone
authorMuhammad Luqman
requires_python<4.0,>=3.8
licenseApache-2.0
keywords streamlit streamlit-component
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # streamlit-calendar 📆

[![PyPI](https://img.shields.io/pypi/v/streamlit-calendar)](https://pypi.org/project/streamlit-calendar/)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/pypistats.svg?logo=python&logoColor=FFE873)](https://pypi.org/project/streamlit-calendar/)
[![PyPI downloads](https://img.shields.io/pypi/dm/streamlit-calendar.svg)](https://pypistats.org/packages/streamlit-calendar)
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/im-perativa/streamlit-calendar/ci.yml)](https://github.com/im-perativa/streamlit-calendar/actions)
[![Code style: Black](https://img.shields.io/badge/code%20style-Black-000000.svg)](https://github.com/psf/black)

**A Streamlit component to show calendar view using [FullCalendar](https://fullcalendar.io/) with support for Streamlit light/dark theme, callbacks, and custom CSS**

<a href="https://www.buymeacoffee.com/imperativa" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/arial-orange.png" alt="Buy Me A Coffee" height="28" width="105"></a>

## 🌏Demo [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://calendar-component.streamlit.app/)

![](https://github.com/im-perativa/streamlit-calendar-demo/blob/main/demo.gif)

## ⚙️Installation

```bash
pip install streamlit-calendar
```

## 💻Usage

```python
import streamlit as st
from streamlit_calendar import calendar

calendar_options = {
    "editable": True,
    "selectable": True,
    "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",
    }
]
custom_css="""
    .fc-event-past {
        opacity: 0.8;
    }
    .fc-event-time {
        font-style: italic;
    }
    .fc-event-title {
        font-weight: 700;
    }
    .fc-toolbar-title {
        font-size: 2rem;
    }
"""

calendar = calendar(events=calendar_events, options=calendar_options, custom_css=custom_css)
st.write(calendar)
```

## 📝API References

### Initialization Args

For complete `event` object properties, check out: [https://fullcalendar.io/docs/event-object](https://fullcalendar.io/docs/event-object)  
For complete `options` object properties, check out: [https://fullcalendar.io/docs](https://fullcalendar.io/docs)  
For complete `custom_css` options, check out: [https://fullcalendar.io/docs/css-customization](https://fullcalendar.io/docs/css-customization)

### Component Values

The component value, i.e. the return value of the `calendar(...)` instance, is a dict which properties depends on the current called callback.

For example, when the user clicked on an event, the component value would be:

```python
st.write(calendar)
# {
#   "callback": "eventClick",
#   "eventClick": {
#     "event": {
#       "allDay": true,
#       "title": "Event 1",
#       "start": "2023-07-03",
#       "end": "2023-07-05",
#       "backgroundColor": "#FF6C6C",
#       "borderColor": "#FF6C6C"
#     },
#     "view": {
#       "type": "dayGridMonth",
#       "title": "July 2023",
#       "activeStart": "2023-06-24T17:00:00.000Z",
#       "activeEnd": "2023-08-05T17:00:00.000Z",
#       "currentStart": "2023-06-30T17:00:00.000Z",
#       "currentEnd": "2023-07-31T17:00:00.000Z"
#     }
#   },
# }
```

The properties of each callback is explained as follows:

#### `dateClick`

Triggered when the user clicks on a date or a time.

Source: [https://fullcalendar.io/docs/dateClick](https://fullcalendar.io/docs/dateClick)

| Property |            Type            | Description                                                                                         |
| -------- | :------------------------: | --------------------------------------------------------------------------------------------------- |
| allDay   |         `boolean`          | `true` or `false` whether the click happened on an all-day cell.                                    |
| date     |          `string`          | a date for the clicked day/time in [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) format. |
| view     |     [`View`](#ViewApi)     | The current view.                                                                                   |
| resource | [`Resource`](#ResourceApi) | If the current view is a resource-view, the resource that owns this date.                           |

#### `eventClick`

Triggered when the user clicks an event.

Source: [https://fullcalendar.io/docs/eventClick](https://fullcalendar.io/docs/eventClick)

| Property |         Type         | Description           |
| -------- | :------------------: | --------------------- |
| event    | [`Event`](#EventApi) | The associated event. |
| view     |  [`View`](#ViewApi)  | The current view.     |

#### `eventChange`

Called after an event has been modified in some way.

Source: [https://fullcalendar.io/docs/eventChange](https://fullcalendar.io/docs/eventChange)

| Property      |          Type          | Description                                                                                                                                                               |
| ------------- | :--------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| oldEvent      |  [`Event`](#EventApi)  | An event with data prior to the change.                                                                                                                                   |
| event         |  [`Event`](#EventApi)  | An Event Object with the updated changed data.                                                                                                                            |
| relatedEvents | [`Event[]`](#EventApi) | An array of other related events that were also affected. An event might have other recurring event instances or might be linked to other events with the same `groupId`. |

#### `eventsSet`

Called after event data is initialized **OR** changed in any way.

Source: [https://fullcalendar.io/docs/eventsSet](https://fullcalendar.io/docs/eventsSet)

| Property |          Type          | Description                                            |
| -------- | :--------------------: | ------------------------------------------------------ |
| events   | [`Event[]`](#EventApi) | An array of events. It contains every event in memory. |

#### `select`

Triggered when a date/time selection is made.

Source: [https://fullcalendar.io/docs/select-callback](https://fullcalendar.io/docs/select-callback)

| Property |            Type            | Description                                                                                                          |
| -------- | :------------------------: | -------------------------------------------------------------------------------------------------------------------- |
| allDay   |         `boolean`          | `true` or `false` whether the selection happened on all-day cells.                                                   |
| start    |          `string`          | a date indicating the beginning of the selection in [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) format. |
| end.     |          `string`          | a date indicating the end of the selection in [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) format.       |
| view     |     [`View`](#ViewApi)     | The current view.                                                                                                    |
| resource | [`Resource`](#ResourceApi) | If the current view is a resource-view, the resource that owns this selection.                                       |

### Types

#### <a name="EventApi"></a>`Event`

Source: [https://fullcalendar.io/docs/event-object](https://fullcalendar.io/docs/event-object)

| Property        |     Type     | Description                                                                                                                                                                                |
| --------------- | :----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| id              |   `string`   | A unique identifier of an event.                                                                                                                                                           |
| groupId         |   `string`   | Events that share a `groupId` will be dragged and resized together automatically.                                                                                                          |
| allDay          |  `boolean`   | Determines if the event is shown in the “all-day” section of relevant views. In addition, if `true` the time text is not displayed with the event.                                         |
| start           |   `string`   | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) representation of the start date. If the event is all-day, there will not be a time part.                                      |
| end             |   `string`   | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) representation of the end date. If the event is all-day, there will not be a time part.                                        |
| title           |   `string`   | The text that will appear on an event.                                                                                                                                                     |
| url             |   `string`   | A URL that will be visited when this event is clicked by the user.                                                                                                                         |
| classNames      |  `string[]`  | An array of strings like `[ 'myclass1', myclass2' ]`. Determines which HTML classNames will be attached to the rendered event.                                                             |
| display         |   `string`   | The rendering type of this event. Can be `'auto'`, `'block'`, `'list-item'`, `'background'`, `'inverse-background'`, or `'none'`.                                                          |
| backgroundColor |   `string`   | The `eventBackgroundColor` override for this specific event.                                                                                                                               |
| borderColor     |   `string`   | The `eventBorderColor` override for this specific event.                                                                                                                                   |
| textColor       |   `string`   | The `eventTextColor` override for this specific event.                                                                                                                                     |
| extendedProps   | `Dictionary` | A plain object holding miscellaneous other properties specified during parsing. Receives properties in the explicitly given `extendedProps` hash as well as other non-standard properties. |
| resourceId      |   `string`   | The unique string identifier for the resource of the event (if any).                                                                                                                       |

#### <a name="ResourceApi"></a>`Resource`

Source: [https://fullcalendar.io/docs/resource-object](https://fullcalendar.io/docs/resource-object)

| Property             |     Type     | Description                                                     |
| -------------------- | :----------: | --------------------------------------------------------------- |
| id                   |   `string`   | The unique string identifier for this resource.                 |
| title                |   `string`   | The title of this resource.                                     |
| eventBackgroundColor |   `string`   | Same as `Event.backgroundColor`.                                |
| eventBorderColor     |   `string`   | Same as `Event.borderColor`.                                    |
| eventTextColor       |   `string`   | Same as `Event.textColor`.                                      |
| eventClassNames      |  `string[]`  | Same as `Event.ClassNames`.                                     |
| extendedProps        | `Dictionary` | A hash of non-standard props that were specified during parsing |

#### <a name="ViewApi"></a>`View`

Source: [https://fullcalendar.io/docs/view-object](https://fullcalendar.io/docs/view-object)

| Property     |  Type  | Description                                                                                                                    |
| ------------ | :----: | ------------------------------------------------------------------------------------------------------------------------------ |
| type         | string | Name of one of the available views.                                                                                            |
| title        | string | Title text that is displayed at the top of the `headerToolbar`.                                                                |
| activeStart  | string | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) that is the first visible day.                                     |
| activeEnd    | string | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) that is the last visible day.                                      |
| currentStart | string | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) that is the start of the interval the view is trying to represent. |
| currentEnd   | string | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) that is the end of the interval the view is trying to represent.   |

## 🛠️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:

```bash
git clone https://github.com/im-perativa/streamlit-calendar.git
cd streamlit-calendar
```

Install the Python dependencies:

```bash
poetry install
```

And install the frontend dependencies:

```bash
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:

```bash
cd streamlit_calendar/frontend
npm start
```

This starts the frontend code on port 3001.

Open another terminal and run:

```bash
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`.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/im-perativa/streamlit-calendar",
    "name": "streamlit-calendar",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": "streamlit, streamlit-component",
    "author": "Muhammad Luqman",
    "author_email": "im.imperativa@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/2e/1d/5ded5661352042a9b23d7ba5d6e92683a828da2950ffbcc5f4ef6e6b0968/streamlit_calendar-1.2.1.tar.gz",
    "platform": null,
    "description": "# streamlit-calendar \ud83d\udcc6\n\n[![PyPI](https://img.shields.io/pypi/v/streamlit-calendar)](https://pypi.org/project/streamlit-calendar/)\n[![Supported Python versions](https://img.shields.io/pypi/pyversions/pypistats.svg?logo=python&logoColor=FFE873)](https://pypi.org/project/streamlit-calendar/)\n[![PyPI downloads](https://img.shields.io/pypi/dm/streamlit-calendar.svg)](https://pypistats.org/packages/streamlit-calendar)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/im-perativa/streamlit-calendar/ci.yml)](https://github.com/im-perativa/streamlit-calendar/actions)\n[![Code style: Black](https://img.shields.io/badge/code%20style-Black-000000.svg)](https://github.com/psf/black)\n\n**A Streamlit component to show calendar view using [FullCalendar](https://fullcalendar.io/) with support for Streamlit light/dark theme, callbacks, and custom CSS**\n\n<a href=\"https://www.buymeacoffee.com/imperativa\" target=\"_blank\"><img src=\"https://cdn.buymeacoffee.com/buttons/v2/arial-orange.png\" alt=\"Buy Me A Coffee\" height=\"28\" width=\"105\"></a>\n\n## \ud83c\udf0fDemo [![Streamlit App](https://static.streamlit.io/badges/streamlit_badge_black_white.svg)](https://calendar-component.streamlit.app/)\n\n![](https://github.com/im-perativa/streamlit-calendar-demo/blob/main/demo.gif)\n\n## \u2699\ufe0fInstallation\n\n```bash\npip install streamlit-calendar\n```\n\n## \ud83d\udcbbUsage\n\n```python\nimport streamlit as st\nfrom streamlit_calendar import calendar\n\ncalendar_options = {\n    \"editable\": True,\n    \"selectable\": True,\n    \"headerToolbar\": {\n        \"left\": \"today prev,next\",\n        \"center\": \"title\",\n        \"right\": \"resourceTimelineDay,resourceTimelineWeek,resourceTimelineMonth\",\n    },\n    \"slotMinTime\": \"06:00:00\",\n    \"slotMaxTime\": \"18:00:00\",\n    \"initialView\": \"resourceTimelineDay\",\n    \"resourceGroupField\": \"building\",\n    \"resources\": [\n        {\"id\": \"a\", \"building\": \"Building A\", \"title\": \"Building A\"},\n        {\"id\": \"b\", \"building\": \"Building A\", \"title\": \"Building B\"},\n        {\"id\": \"c\", \"building\": \"Building B\", \"title\": \"Building C\"},\n        {\"id\": \"d\", \"building\": \"Building B\", \"title\": \"Building D\"},\n        {\"id\": \"e\", \"building\": \"Building C\", \"title\": \"Building E\"},\n        {\"id\": \"f\", \"building\": \"Building C\", \"title\": \"Building F\"},\n    ],\n}\ncalendar_events = [\n    {\n        \"title\": \"Event 1\",\n        \"start\": \"2023-07-31T08:30:00\",\n        \"end\": \"2023-07-31T10:30:00\",\n        \"resourceId\": \"a\",\n    },\n    {\n        \"title\": \"Event 2\",\n        \"start\": \"2023-07-31T07:30:00\",\n        \"end\": \"2023-07-31T10:30:00\",\n        \"resourceId\": \"b\",\n    },\n    {\n        \"title\": \"Event 3\",\n        \"start\": \"2023-07-31T10:40:00\",\n        \"end\": \"2023-07-31T12:30:00\",\n        \"resourceId\": \"a\",\n    }\n]\ncustom_css=\"\"\"\n    .fc-event-past {\n        opacity: 0.8;\n    }\n    .fc-event-time {\n        font-style: italic;\n    }\n    .fc-event-title {\n        font-weight: 700;\n    }\n    .fc-toolbar-title {\n        font-size: 2rem;\n    }\n\"\"\"\n\ncalendar = calendar(events=calendar_events, options=calendar_options, custom_css=custom_css)\nst.write(calendar)\n```\n\n## \ud83d\udcddAPI References\n\n### Initialization Args\n\nFor complete `event` object properties, check out: [https://fullcalendar.io/docs/event-object](https://fullcalendar.io/docs/event-object)  \nFor complete `options` object properties, check out: [https://fullcalendar.io/docs](https://fullcalendar.io/docs)  \nFor complete `custom_css` options, check out: [https://fullcalendar.io/docs/css-customization](https://fullcalendar.io/docs/css-customization)\n\n### Component Values\n\nThe component value, i.e. the return value of the `calendar(...)` instance, is a dict which properties depends on the current called callback.\n\nFor example, when the user clicked on an event, the component value would be:\n\n```python\nst.write(calendar)\n# {\n#   \"callback\": \"eventClick\",\n#   \"eventClick\": {\n#     \"event\": {\n#       \"allDay\": true,\n#       \"title\": \"Event 1\",\n#       \"start\": \"2023-07-03\",\n#       \"end\": \"2023-07-05\",\n#       \"backgroundColor\": \"#FF6C6C\",\n#       \"borderColor\": \"#FF6C6C\"\n#     },\n#     \"view\": {\n#       \"type\": \"dayGridMonth\",\n#       \"title\": \"July 2023\",\n#       \"activeStart\": \"2023-06-24T17:00:00.000Z\",\n#       \"activeEnd\": \"2023-08-05T17:00:00.000Z\",\n#       \"currentStart\": \"2023-06-30T17:00:00.000Z\",\n#       \"currentEnd\": \"2023-07-31T17:00:00.000Z\"\n#     }\n#   },\n# }\n```\n\nThe properties of each callback is explained as follows:\n\n#### `dateClick`\n\nTriggered when the user clicks on a date or a time.\n\nSource: [https://fullcalendar.io/docs/dateClick](https://fullcalendar.io/docs/dateClick)\n\n| Property |            Type            | Description                                                                                         |\n| -------- | :------------------------: | --------------------------------------------------------------------------------------------------- |\n| allDay   |         `boolean`          | `true` or `false` whether the click happened on an all-day cell.                                    |\n| date     |          `string`          | a date for the clicked day/time in [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) format. |\n| view     |     [`View`](#ViewApi)     | The current view.                                                                                   |\n| resource | [`Resource`](#ResourceApi) | If the current view is a resource-view, the resource that owns this date.                           |\n\n#### `eventClick`\n\nTriggered when the user clicks an event.\n\nSource: [https://fullcalendar.io/docs/eventClick](https://fullcalendar.io/docs/eventClick)\n\n| Property |         Type         | Description           |\n| -------- | :------------------: | --------------------- |\n| event    | [`Event`](#EventApi) | The associated event. |\n| view     |  [`View`](#ViewApi)  | The current view.     |\n\n#### `eventChange`\n\nCalled after an event has been modified in some way.\n\nSource: [https://fullcalendar.io/docs/eventChange](https://fullcalendar.io/docs/eventChange)\n\n| Property      |          Type          | Description                                                                                                                                                               |\n| ------------- | :--------------------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| oldEvent      |  [`Event`](#EventApi)  | An event with data prior to the change.                                                                                                                                   |\n| event         |  [`Event`](#EventApi)  | An Event Object with the updated changed data.                                                                                                                            |\n| relatedEvents | [`Event[]`](#EventApi) | An array of other related events that were also affected. An event might have other recurring event instances or might be linked to other events with the same `groupId`. |\n\n#### `eventsSet`\n\nCalled after event data is initialized **OR** changed in any way.\n\nSource: [https://fullcalendar.io/docs/eventsSet](https://fullcalendar.io/docs/eventsSet)\n\n| Property |          Type          | Description                                            |\n| -------- | :--------------------: | ------------------------------------------------------ |\n| events   | [`Event[]`](#EventApi) | An array of events. It contains every event in memory. |\n\n#### `select`\n\nTriggered when a date/time selection is made.\n\nSource: [https://fullcalendar.io/docs/select-callback](https://fullcalendar.io/docs/select-callback)\n\n| Property |            Type            | Description                                                                                                          |\n| -------- | :------------------------: | -------------------------------------------------------------------------------------------------------------------- |\n| allDay   |         `boolean`          | `true` or `false` whether the selection happened on all-day cells.                                                   |\n| start    |          `string`          | a date indicating the beginning of the selection in [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) format. |\n| end.     |          `string`          | a date indicating the end of the selection in [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) format.       |\n| view     |     [`View`](#ViewApi)     | The current view.                                                                                                    |\n| resource | [`Resource`](#ResourceApi) | If the current view is a resource-view, the resource that owns this selection.                                       |\n\n### Types\n\n#### <a name=\"EventApi\"></a>`Event`\n\nSource: [https://fullcalendar.io/docs/event-object](https://fullcalendar.io/docs/event-object)\n\n| Property        |     Type     | Description                                                                                                                                                                                |\n| --------------- | :----------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| id              |   `string`   | A unique identifier of an event.                                                                                                                                                           |\n| groupId         |   `string`   | Events that share a `groupId` will be dragged and resized together automatically.                                                                                                          |\n| allDay          |  `boolean`   | Determines if the event is shown in the \u201call-day\u201d section of relevant views. In addition, if `true` the time text is not displayed with the event.                                         |\n| start           |   `string`   | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) representation of the start date. If the event is all-day, there will not be a time part.                                      |\n| end             |   `string`   | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) representation of the end date. If the event is all-day, there will not be a time part.                                        |\n| title           |   `string`   | The text that will appear on an event.                                                                                                                                                     |\n| url             |   `string`   | A URL that will be visited when this event is clicked by the user.                                                                                                                         |\n| classNames      |  `string[]`  | An array of strings like `[ 'myclass1', myclass2' ]`. Determines which HTML classNames will be attached to the rendered event.                                                             |\n| display         |   `string`   | The rendering type of this event. Can be `'auto'`, `'block'`, `'list-item'`, `'background'`, `'inverse-background'`, or `'none'`.                                                          |\n| backgroundColor |   `string`   | The `eventBackgroundColor` override for this specific event.                                                                                                                               |\n| borderColor     |   `string`   | The `eventBorderColor` override for this specific event.                                                                                                                                   |\n| textColor       |   `string`   | The `eventTextColor` override for this specific event.                                                                                                                                     |\n| extendedProps   | `Dictionary` | A plain object holding miscellaneous other properties specified during parsing. Receives properties in the explicitly given `extendedProps` hash as well as other non-standard properties. |\n| resourceId      |   `string`   | The unique string identifier for the resource of the event (if any).                                                                                                                       |\n\n#### <a name=\"ResourceApi\"></a>`Resource`\n\nSource: [https://fullcalendar.io/docs/resource-object](https://fullcalendar.io/docs/resource-object)\n\n| Property             |     Type     | Description                                                     |\n| -------------------- | :----------: | --------------------------------------------------------------- |\n| id                   |   `string`   | The unique string identifier for this resource.                 |\n| title                |   `string`   | The title of this resource.                                     |\n| eventBackgroundColor |   `string`   | Same as `Event.backgroundColor`.                                |\n| eventBorderColor     |   `string`   | Same as `Event.borderColor`.                                    |\n| eventTextColor       |   `string`   | Same as `Event.textColor`.                                      |\n| eventClassNames      |  `string[]`  | Same as `Event.ClassNames`.                                     |\n| extendedProps        | `Dictionary` | A hash of non-standard props that were specified during parsing |\n\n#### <a name=\"ViewApi\"></a>`View`\n\nSource: [https://fullcalendar.io/docs/view-object](https://fullcalendar.io/docs/view-object)\n\n| Property     |  Type  | Description                                                                                                                    |\n| ------------ | :----: | ------------------------------------------------------------------------------------------------------------------------------ |\n| type         | string | Name of one of the available views.                                                                                            |\n| title        | string | Title text that is displayed at the top of the `headerToolbar`.                                                                |\n| activeStart  | string | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) that is the first visible day.                                     |\n| activeEnd    | string | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) that is the last visible day.                                      |\n| currentStart | string | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) that is the start of the interval the view is trying to represent. |\n| currentEnd   | string | An [ISO8601 string](https://en.wikipedia.org/wiki/ISO_8601) that is the end of the interval the view is trying to represent.   |\n\n## \ud83d\udee0\ufe0fDevelopment\n\nNote: you only need to run these steps if you want to change this component or\ncontribute to its development!\n\n### Setup\n\nFirst, clone the repository:\n\n```bash\ngit clone https://github.com/im-perativa/streamlit-calendar.git\ncd streamlit-calendar\n```\n\nInstall the Python dependencies:\n\n```bash\npoetry install\n```\n\nAnd install the frontend dependencies:\n\n```bash\ncd streamlit_calendar/frontend\nnpm install\n```\n\n### Making changes\n\nTo make changes, first go to `streamlit_calendar/__init__.py` and make sure the\nvariable `_RELEASE` is set to `False`. This will make the component use the local\nversion of the frontend code, and not the built project.\n\nThen, start one terminal and run:\n\n```bash\ncd streamlit_calendar/frontend\nnpm start\n```\n\nThis starts the frontend code on port 3001.\n\nOpen another terminal and run:\n\n```bash\ncd streamlit_calendar\npoetry shell\nstreamlit run __init__.py\n```\n\nThis runs the development version on local Streamlit server. Now you can make changes to the Python or Javascript\ncode in `streamlit_calendar` and the demo app should update automatically!\n\nIf nothing updates, make sure the variable `_RELEASE` in `streamlit_calendar/__init__.py` is set to `False`.\n",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "\ud83d\udcc6 A Streamlit component to show callendar using FullCalendar (https://fullcalendar.io)",
    "version": "1.2.1",
    "project_urls": {
        "Homepage": "https://github.com/im-perativa/streamlit-calendar",
        "Repository": "https://github.com/im-perativa/streamlit-calendar"
    },
    "split_keywords": [
        "streamlit",
        " streamlit-component"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "99142aa71e5b3ec870eda05c06a8aa6056eee2d04722cd2fee2751220a7a2504",
                "md5": "e4f2d6cb8adec03c07ba9329aba6fb23",
                "sha256": "6a76799412872766ffb51c1a8e3ed58326593331caf373d8536d75560fdf1cd6"
            },
            "downloads": -1,
            "filename": "streamlit_calendar-1.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e4f2d6cb8adec03c07ba9329aba6fb23",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 1274475,
            "upload_time": "2024-12-14T03:51:56",
            "upload_time_iso_8601": "2024-12-14T03:51:56.132845Z",
            "url": "https://files.pythonhosted.org/packages/99/14/2aa71e5b3ec870eda05c06a8aa6056eee2d04722cd2fee2751220a7a2504/streamlit_calendar-1.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2e1d5ded5661352042a9b23d7ba5d6e92683a828da2950ffbcc5f4ef6e6b0968",
                "md5": "66859b93c1693318a28936b51377a9b9",
                "sha256": "3e23cf701ce49f95ac9846ce624d26dec0a5759f6e9992932579c4a433ea200d"
            },
            "downloads": -1,
            "filename": "streamlit_calendar-1.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "66859b93c1693318a28936b51377a9b9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 1262038,
            "upload_time": "2024-12-14T03:51:59",
            "upload_time_iso_8601": "2024-12-14T03:51:59.105366Z",
            "url": "https://files.pythonhosted.org/packages/2e/1d/5ded5661352042a9b23d7ba5d6e92683a828da2950ffbcc5f4ef6e6b0968/streamlit_calendar-1.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-14 03:51:59",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "im-perativa",
    "github_project": "streamlit-calendar",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "streamlit-calendar"
}
        
Elapsed time: 0.38350s