🤖 AI powered tool (openAI) to create Appointments from Emails

Ahoi - Don't fork
This is my personal server. I try to maintain it and keep it running, but I cannot guarantee it.
So if you want to fork - especially if the idea is to have a backup - do not use the "Fork" button here.
Instead use

git clone --mirror
and push it to your preferred service like Codeberg

  • C# 99.2%
  • Dockerfile 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-05-20 13:07:20 +02:00
.gitea ci: add FUNDING.yml for sponsor links 2026-03-31 13:41:09 +02:00
.idea/.idea.AiMailScanner/.idea latest changes 2025-01-02 19:53:09 +01:00
.gitignore more robust imap handling 2026-05-19 14:04:35 +02:00
AiMailScanner.csproj fixes 2026-05-19 16:11:22 +02:00
AiMailScanner.sln latest changes 2025-01-02 19:53:09 +01:00
Config.cs allow multiple email accounts 2026-05-20 13:07:20 +02:00
DavSender.cs better logs 2026-05-19 18:43:51 +02:00
docker-compose.yml Change to use local Ollama within Docker (gemma3) 2026-05-20 08:50:30 +02:00
docker.md allow local llms 2026-05-19 17:43:30 +02:00
Dockerfile docker net9 2026-05-19 16:13:23 +02:00
EmailContents.cs persistent store; commpose-file 2026-05-19 17:11:04 +02:00
ImapReceiver.cs allow multiple email accounts 2026-05-20 13:07:20 +02:00
LlmUnavailableException.cs allow local llms 2026-05-19 17:43:30 +02:00
nlog.config latest changes 2025-01-02 19:53:09 +01:00
OpenAiMailFunctions.cs fix logging 2026-05-20 10:11:16 +02:00
ProcessedStore.cs allow multiple email accounts 2026-05-20 13:07:20 +02:00
Program.cs log llm 2026-05-19 17:48:23 +02:00
README.md Fix formatting issues in README.md 2025-10-16 10:01:08 +02:00
secrets.example.json allow multiple email accounts 2026-05-20 13:07:20 +02:00

AiMail2Cal

This is a small simple tool that uses the OpenAi-Api to detect dates in emails read via Imap. If a date is found a new Calendar-Entry is created in a Calendar using CalDav (e.g. NextCloud-Calendars) The bot will add the following information to an appointment if it can be found:

  • Start-date of the appointment
  • End-date of the appointment
  • Location
  • Participants

Config

Simply copy secrets.example.json to secrets.json and enter your values. You will need an openAi-Api-Key, Credentials for your Imap server and Credentials for your calDav-Calendar