tungsten-calendar
A calendar for your Tungsten admin panel: month, week, day and list views, meetings, calls, tasks and reminders, and the dates from your other Tungsten plugins in one place.
- Four views: month, week, day and list, with arrow-key navigation.
- Events: all-day, multi-day and timed, with type, color, location and notes.
- Repeat: every day, week, month or year, every N times, until a date. Month ends and 29 February are handled.
- Drag and drop: drag an event to another day to move it.
- Private events: "Only me" events are hidden from everyone else.
- Phone sync: a private link for Google Calendar, Outlook or an iPhone, plus .ics download.
- Linked with your plugins: approved leave, holidays and birthdays (HR), lead follow-ups (Leads), ticket due times (Help desk), unpaid invoices and bills (Finance) and blog posts (Blog). Each person only sees what they may see.
- Tags and Quick Create: with those plugins, events get tags, and "+ New → Event" works from any page.
- Hooks: any plugin can add its own dates with
add_source. - Dashboard card: what is coming up in the next 7 days.
Install
pip install tungsten-calendar
from tungsten_calendar import CalendarPlugin
panel.plugin(CalendarPlugin(timezone="Asia/Kolkata"))
panel.create_tables(engine)
Open Calendar in the menu.
Add your own dates
from tungsten_calendar import CalendarItem
def site_visits(ctx, start, end):
return [CalendarItem(title=f"Visit: {v.client}", start=v.starts_at, end=v.ends_at, url=ctx.url("visits", v.id))
for v in visits_between(ctx.db, start, end)]
class VisitsPlugin(Plugin):
id = "visits"
def boot(self, panel):
calendar = panel.get_plugin("calendar")
if calendar is not None:
calendar.add_source("visits", "Site visits", site_visits, color="teal", icon="map-pin")
Options
| Option | Default | What it does |
|---|---|---|
timezone |
server's | Your team's time zone, like "Asia/Kolkata" |
first_day |
"monday" |
First day of the week ("sunday" or 0-6 also work) |
default_view |
"month" |
month, week, day or list |
kinds |
Meeting, Call, Task, Reminder, Other | Event types: key -> (label, color, icon) |
links |
True |
Dates from other plugins: True, False or a list of keys |
feeds |
True |
Private subscribe links for phone calendars |
dashboard_widget |
True |
The "Coming up" card, for upcoming_days days |
Full guide: https://tungsten.prisminfoways.com/docs/calendar
Try it
pip install -e . -e plugins/calendar -e plugins/hr -e plugins/leads -e plugins/tickets uvicorn
uvicorn plugins.calendar.example:app --reload
Open http://127.0.0.1:8000/admin/calendar and sign in with admin@example.com / password.
Metadata
Release files for tungsten-calendar 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tungsten_calendar-0.1.0.tar.gz | 37.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tungsten_calendar-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 70.9 kB
Release files / tungsten_calendar-0.1.0.tar.gz
| Download URL | tungsten_calendar-0.1.0.tar.gz |
|---|---|
| Size | 37.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8627a78020d54c497704f7fe5cee3cfcc943af6f4fb7904d1efa044c83500989
|
|
BLAKE2b-256 checksum How to use checksums |
6d2fa824caf5e07bdbaf60706fd63225e091b051ef08139a8092c31ba3decadc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Release files / tungsten_calendar-0.1.0-py3-none-any.whl
| Download URL | tungsten_calendar-0.1.0-py3-none-any.whl |
|---|---|
| Size | 33.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fe02633da5ec485715e6551a486ef5f28b414069f0bc5e559cf873edac80e9bd
|
|
BLAKE2b-256 checksum How to use checksums |
cdfe480ae413d213ddd144088557551709a15aae48de356abdeb8f599b9d56d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|