Skip to main content

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)

Source distribution for tungsten-calendar 0.1.0
File Size Uploaded
tungsten_calendar-0.1.0.tar.gz 37.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tungsten-calendar 0.1.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page