Medical-research-skills schedule-management
Local schedule management for adding events, tracking deadlines, generating reminders, and detecting time conflicts when users need offline scheduling with optional popup notifications.
install
source · Clone the upstream repo
git clone https://github.com/aipoch/medical-research-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aipoch/medical-research-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/scientific-skills/Other/schedule-management" ~/.claude/skills/aipoch-medical-research-skills-schedule-management && rm -rf "$T"
manifest:
scientific-skills/Other/schedule-management/SKILL.mdsource content
When to Use
- You need lightweight, offline/local-only schedule management without any cloud sync.
- You want to add meetings/events and store them in a simple local data directory.
- You need to track deadlines (modeled as events with
) and list them by time range.type=deadline - You want to detect scheduling conflicts (overlapping time windows on the same date).
- You need local reminders exported to a file and optionally shown as desktop popup notifications.
Key Features
- Add and store events locally in
.events.jsonl - List and filter events by time range.
- Import events (operation-driven workflow).
- Detect conflicts by checking overlapping time intervals.
- Generate upcoming reminders into
.reminders.csv - Optional popup notifications via a local script with deduplication using
.notified.log - Strict validation for required fields and time format.
Dependencies
- Python
>= 3.9 - (Optional, for popup reminders) Windows PowerShell
to run>= 5.1scripts/notify.ps1
Example Usage
Time format must be
(24-hour).YYYY-MM-DD HH:MM
1) Add an event with a reminder
python scripts/schedule_tool.py \ --operation add \ --data-dir "./data" \ --title "Project Sync" \ --start "2026-02-10 09:00" \ --end "2026-02-10 10:00" \ --type "meeting" \ --location "Room 3A" \ --notes "Bring status updates" \ --tags "work,weekly" \ --remind 30
2) List events
python scripts/schedule_tool.py \ --operation list \ --data-dir "./data"
3) Detect conflicts
python scripts/schedule_tool.py \ --operation conflicts \ --data-dir "./data"
4) Generate reminders export
python scripts/schedule_tool.py \ --operation reminders \ --data-dir "./data"
This generates:
./data/events.jsonl./data/reminders.csv
5) (Optional) Show popup reminders with deduplication
- Generate reminders first:
python scripts/schedule_tool.py --operation reminders --data-dir "./data" - Run the notifier periodically (e.g., via Task Scheduler):
powershell -ExecutionPolicy Bypass -File scripts/notify.ps1 -DataDir "./data"
Notifications are deduplicated using
./data/notified.log so each reminder time is shown only once.
Additional examples may be available in
.references/examples.md
Implementation Details
-
Storage
- Events are appended to
in the specifiedevents.jsonl
.--data-dir - Reminder exports are written to
in the same directory.reminders.csv - Popup notification deduplication uses
in the data directory.notified.log
- Events are appended to
-
Operations
: validates required fields and writes a new event record.add
: imports event records (format depends on the script’s supported import mode).import
: prints a summary of stored events (optionally filtered by time range).list
: checks for overlapping events and reports conflicts.conflicts
: computes upcoming reminder times and exports them.reminders
-
Time Parsing Rules
- Accepted format:
(24-hour).YYYY-MM-DD HH:MM - Invalid time formats are explicitly rejected.
- Accepted format:
-
Conflict Detection
- Two events conflict if they occur on the same date and their time intervals overlap:
- Overlap condition:
andstartA < endBstartB < endA
- Overlap condition:
- Conflicts are reported to standard output.
- Two events conflict if they occur on the same date and their time intervals overlap:
-
Deadlines
- A deadline is represented as an event with
.type=deadline - Deadline tracking uses the same storage and listing mechanisms as other events.
- A deadline is represented as an event with
-
Failure Handling
- Missing required fields terminates only the current operation (does not corrupt existing data).
- Validation errors are surfaced clearly (e.g., invalid time format).
-
Security & Compliance
- No network access and no external APIs.
- Reads/writes are restricted to the user-specified local
.--data-dir