AIPlanner is a Python based tool for transforming descriptions of events into an .ics
file which can be added to any calendar application (e.g. Google Calendar, Outlook, etc.).
The tool uses a chat interface to interact with user and extract event's details. At its core, it hinges on the following tools:
- Ollama for natural language understanding. Generates responses and interacts with the user to extract info of the event to be added to the calendar.
- Flask for the web interface and API. The user interacts with the tool through a web interface.
- at least 5.9 GB of free system memory to run Ollama llama3 model. llama3 model is the most lightweight model that generates acceptable responses. More advanced models can also be used but they require more memory. Here you can find other alternative models.
Use docker compose to run the tool. The following command will build the docker image and run the tool on 127.0.0.1:5050
.
docker-compose up
The ollama base image (llama3) is about 4.7 GB, thus it will take some time to download and build the docker image.
- The user interacts with the tool through a web interface. The tool asks the user for the event's details and the user responds with the details by inserting them in the chat and pressing
Send Message
button. width="580" height="280" style="border-radius: 18px;">
- After sending the details, the tool will process the user's input and extract the event's details. Then it will ask the user if the details are correct. The user can either confirm the details by pressing the
Add Event
button, or correct the details by reproviding all the details and furthur details in the chat and sending them by pressing theSend Message
button. Below is an example of the tool's response after processing the user's input:
- If the user confirms the details, the tool will finalize the event and add it to the calendar
.ics
file. The user can download the.ics
file by pressing theDownload .ics File
button. Below is an example of the.ics
file that is generated by the tool:
BEGIN:VCALENDAR
VERSION:2.0
PRODID:ics.py - http://git.io/lLljaA
BEGIN:VEVENT
DESCRIPTION:A dentist appointment scheduled for 26th of August 2024 at 10:00 AM for 1 hour in Berlin.
DTEND:20240826T110000Z
DTSTART:20240826T100000Z
SUMMARY:Dentist appointment
UID:fde1a775-46a8-4fa0-ae20-4ea837a77d86@fde1.org
END:VEVENT
END:VCALENDAR
- The
.ics
file can be added to any calendar application (e.g. Google Calendar, Outlook, etc.) by importing it. Below an event after adding the.ics
file to Outlook calendar: