Takes emails from an IMAP server, parses the body, and creates event(s) in a CalDAV calendar
  • Python 96.4%
  • Shell 2.1%
  • Dockerfile 1.5%
Find a file
Jack Stockley 47f74b03a6
Some checks are pending
Lint, Test, and Deploy / Lint (push) Waiting to run
Lint, Test, and Deploy / Test (push) Waiting to run
Lint, Test, and Deploy / Publish to PyPI (push) Blocked by required conditions
Lint, Test, and Deploy / Deploy Docker Image (push) Blocked by required conditions
Trivy Security Scan / Scan (push) Waiting to run
Merge pull request #325 from jnstockley/dev
Update dependency pydantic-ai-slim to v1.106.0
2026-06-05 10:48:56 -05:00
.github/workflows Update astral-sh/setup-uv action to v8.2.0 2026-06-03 13:08:45 +00:00
scripts Fix linting to fail 2025-12-26 23:01:33 -06:00
src Update dav client functions 2026-03-07 14:51:23 -06:00
tests Cleanup tests 2025-08-18 20:45:43 -05:00
.dockerignore Update .dockerignore to include data and logs 2025-09-30 18:10:47 -05:00
.gitignore Update .gitignore to include additional patterns 2025-09-30 18:11:16 -05:00
.python-version Bump python version 2026-01-17 19:15:29 -06:00
.yamllint Initial commit 2025-08-17 20:18:03 -05:00
compose-dev.yml Fix merge conflict issues 2025-12-30 18:32:27 -06:00
compose.yml Pull changes from python-starter 2025-12-31 00:22:45 +00:00
Dockerfile Pull changes from python-starter 2026-05-12 01:18:58 +00:00
LICENSE Initial commit 2025-08-17 20:18:03 -05:00
Main Branch Protection.json Add branch protection json 2025-09-30 08:19:02 -05:00
pyproject.toml Update dependency pydantic-ai-slim to v1.106.0 2026-06-05 02:08:51 +00:00
README.md New default system prompt 2025-11-16 14:45:03 -06:00
renovate.json Initial commit 2025-08-17 20:18:03 -05:00
sample.env Add missing environment variables 2026-04-10 19:56:07 -05:00
uv.lock Update dependency pydantic-ai-slim to v1.106.0 2026-06-05 02:08:51 +00:00

E-Mail to calendar Converter

The point of this application is to search an IMAP account, look for emails based on certain criteria(s), and parse the content, using regex, and automatically create calendar events in an iCal account.

TO-DO

  • Get e-mails, and save ID to sqlite db to avoid duplicates
  • Save calendar events to sqlite db to avoid duplicates
  • Add config to backfill (check all emails from an optional certain date), or use most recent email
    • If using most recent, when new email arrives, remove events not present, and add new ones
  • If new email comes in with updated events, update event in calendar instead of creating a new one
  • Using email summary check for words like Cancelled, etc. to delete events
  • If event already exists, check if details have changed, and update if necessary
  • Investigate IMAP IDLE (push instead of poll)
  • Make sure all day events are handled correctly
  • Add Docker Model Runner support
  • Add 'validate' function for events, and if it fails, have AI re-process that event

Environment Variables

Name Description Type Default Value Allowed Values