This is a port of the classic CNet Calendar AREXX script (CNet Pro BBS) to Mystic BBS (Python scripts).
It displays a monthly calendar and a right-side “upcoming events” list from a simple data file, and can also generate a separate birthday events file from Mystic user records.
This script is intended to be run:
/mystic/
├── scripts/
│ ├── calendar.mpy
│ ├── generate_birthdays.py
│ └── generate_holidays.py
└── calendar_data/
├── cal.2026
├── cal.2027
├── cal.bdays.2026
└── cal.bdays.2027
Notes:
Each event line begins with MMDD, followed by display text.
Example:
0101 1st - New Year's Day 0704 4th - Independence Day! 0820 20th - Renaissance Faire at Burbank CA 0820 E-mail Jim Shaffer for more info
Rules:
Birthday files (`cal.bdays.YYYY`) use the same format.
Create the data directory:
mkdir -p /home/pi/mystic/themes/default/scripts/calendar_data
Confirm your script points to the correct location:
DATA_PATH = "/home/pi/mystic/themes/default/scripts/calendar_data/"
Normal events calendar:
calendar.mpy
Birthday calendar (reads `cal.bdays.YYYY`):
calendar.mpy bd
Important Mystic note:
Birthdays are generated into yearly files:
The generator:
If you run both `cal.bdays.<year>` and `cal.bdays.<year+1>`, the main calendar script can show upcoming birthdays across the year boundary.
We attempted two traditional approaches for a “CNet-style” boxed calendar:
In Mystic’s Python output path, those characters were either sanitized or re-encoded (mojibake like `0xB…`, `├ä…`, or `ΓöÇ…`) depending on the terminal/client path.
So this release uses plain ASCII layout + ANSI colors for maximum compatibility and reliability.
If we want the exact “classic boxed calendar” look later without encoding problems, the best approach is:
This avoids encoding problems entirely because the box art is handled by Mystic’s ANSI file renderer, not Python output.
Add as a PFile/Door (example paths will vary by install):
You can also call it at login by running it from the appropriate Mystic login event/menu hook.
See full code here: Mystic Calendar Code