Skip to main content

A simple calendar driven by text files, with an optional web UI.

You can add/edit/remove events using the text tools of your choice, or use the scripts or web UI.

Events look something like:

$ cat events/medical_procedure

name: medical_procedure
date: 2020-10-09
start_time: 15:00
duration_minutes: 1
notes: address goes here
recurs: monthly
recurs_until: 2099-01-01
skip_dates: 2020-11-09,2021-03-09

To remove an event, use "rm", or the web UI.

Basic command examples

# This uses Flask's built-in server. See further below on using gunicorn
# Use "src.minical" if running from project root and not an installed package
# Navigate to /cal/events after startup
MINICAL_PORT=5132 python -m minical.app

# List upcoming events
python -m minical.whats_next -s bday -a

# Point to events living somewhere else.
# This is one way to maintain separate calendars
MINICAL_EVENTS_DIR=/some/path/events python -m minical.whats_next

# There is an "entrypoint" if you install the package, just a CLI shorthand
# Equivalent to `python -m minical.app`
MINICAL_PORT=5132 minical-web

The "whats_next" CLI script shows something like:

2021-05-29 (Sun), 01:01, friend_drinks (in 3 days)
2021-06-03 (Fri), 17:00, some_wedding (in 8 days)
2021-06-06 (Mon), 15:00, dr_foo_appt (in 11 days)
2022-05-17 (Wed), 01:01, some_birthday (in 356 days)
2022-08-01 (Tue), 01:01, award_ceremony (in 432 days)
2023-05-17 (Fri), 01:01, some_birthday (in 722 days)

Building the package

WIP - haven't done this in a long time

# Make an env wherever, outside of project dir,
# to make sure you're not importing files from same dir
python -m venv minical_build_test
source minical_build_test/bin/activate
# This is a tool from pypa
pip install build
# Go back into project dir with the setup.cfg. This command will make a 'dist' folder
python -m build
# Install the thing from the dist folder
pip install file:///home/.../dist/path/to/thing.tar.gz

Running with gunicorn

# If installed
gunicorn -b 127.0.0.1:5132 minical.app:app
# If working with source
gunicorn -b 127.0.0.1:5132 src.minical.app:app

Other features

There are none! No reminders or sharing. You shouldn't be so busy!

Metadata

Release files for minical 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for minical 0.0.2
File Size Uploaded
minical-0.0.2.tar.gz 9.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for minical 0.0.2
File Interpreter ABI Platform
minical-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 21.0 kB

Release files / minical-0.0.2.tar.gz

Download URL minical-0.0.2.tar.gz
Size 9.7 kB
Tags Source
SHA-256 checksum
How to use checksums
fac59a4a1d1241748c86d1118bdda6a2e11d20c0c2d754002aafca00858f7b0d
BLAKE2b-256 checksum
How to use checksums
cf0ea0785451109a13cc4934989b486aa648363b0705e0bca7fa2c53062621da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.8.10

Release files / minical-0.0.2-py3-none-any.whl

Download URL minical-0.0.2-py3-none-any.whl
Size 11.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc34cf9f82a74eeb3580712c5a276dda36392b808fa8159afb74bb173b3021ff
BLAKE2b-256 checksum
How to use checksums
87ee0f4cedaf4e4b046b65ca5a4a6db6359eb55916c6c342e0beae21d353512d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.0 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

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