how to create calendar events using AI tools with natural language quickly
Purpose
When we want to create a calendar event using natural language, I do not find any solution in google calendar itself. And if you do not want to add any add-ons to your google workspace, you can continue to read this post.
In this post, I will demo how to use google gemini chat to create google calendar event using natural language, and it works for me, so I want to share it to you.
And the last point, this method should work for Google Calendar, Apple Calendar, Outlook Calendar, because it use the Google ICS format
, which is a universal language for all calendar apps.
How
The workflow
Here is the workflow of our solution:
First, we using AI chat web page to ask AI using natural language
Second, we save the AI response (only the ICS format content) as a file named xxx.ics
Last, we import the file in the Calendar
app.
The solution details
First ask gemini or chatgpt using the following prompt(you can change it by your needs):
You are a google calendar professional, please generate a google calendar ICS format content to import , here is the event detail:1. It's an all day event2. It occurs at the last work day ,repeat monthly3. Its title is "close IR and comment IPD for bswen.com"4. It should remind me a day earlier at 17:005. It should be first triggerred at 07-31
Here I defined an event that is not easy to define in google calendar, which will repeat at last work day in every month, if you want to manually create the event in google calendar, you will find it very tedious, so here comes the AI.
After a short thinking, AI will generate a ICS format content:
BEGIN:VCALENDARVERSION:2.0PRODID:-//Google Inc//Google Calendar 2.0//ENBEGIN:VEVENTDTSTAMP:20250701T120000ZSUMMARY:close IR and comment IPD for bswen.comLAST-MODIFIED:20250701T120000ZDTSTART;VALUE=DATE:20250731DTEND;VALUE=DATE:20250801RRULE:FREQ=MONTHLY;BYDAY=-1MO,-1TU,-1WE,-1TH,-1FRTRANSP:TRANSPARENTX-GOOGLE-CALENDAR-CONTENT-TITLE:close IR and comment IPD for bswen.comACTION:DISPLAYDESCRIPTION:ReminderTRIGGER:-P1DT17H0M0SEND:VALARMEND:VEVENTEND:VCALENDAR
Copy the above content, and save it as a file named xxx.ics
, change xxx
to your favorite name.
Then open your calendar’s web page, click settings—> import as follows:
Then click import:
Now your events should exist in your calendar!
Theory
Basics of ICS
Basic grammar of ICS
The “grammar” of an ICS file is super simple. It’s built on:
- BEGIN: and END: tags: These act like bookends, telling your calendar where a specific block of information starts and ends.
- Properties: These are key-value pairs, like “Title: My Party” or “Date: July 4”. They describe different aspects of your event.
- Plain text: It’s just text, no fancy formatting or colors inside the file itself. Your calendar app decides how to display it.
Example of ICS file
Here’s what a simple .ics file for that might look like:
BEGIN:VCALENDARVERSION:2.0PRODID:-//Example Co.//NONSGML v1.0//ENBEGIN:VEVENTDTSTAMP:20250701T191857ZDTSTART:20250702T100000DTEND:20250702T103000SUMMARY:Coffee BreakLOCATION:Office KitchenDESCRIPTION:Quick 30-minute coffee break with the team.END:VEVENTEND:VCALENDAR
Let’s break it down, line by line, for easy understanding:
-
BEGIN:VCALENDAR: This is the very first line, telling your calendar, “Hey, I’m starting a calendar file!”
-
VERSION:2.0: This just tells the calendar what version of the ICS standard this file follows. 2.0 is the current common one.
-
PRODID:-//Example Co.//NONSGML v1.0//EN: This is a “Product ID.” It’s like a signature saying who or what created this calendar entry. For personal use, you can often just leave this as a generic one or even simplify it.
-
EGIN:VEVENT: This is where the actual event information starts. Think of VEVENT as “Virtual Event.”
-
UID:[email protected]: This is a Unique IDentifier for this specific event. It’s important because it helps your calendar recognize if an event is new or an update to an existing one. It should be truly unique (often a combination of date/time and a random string or your domain name).
-
DTSTAMP:20250701T191857Z: This is the “Date-Time Stamp,” indicating when this file was created or last updated. The Z means it’s in Coordinated Universal Time (UTC), which is a common way to avoid timezone confusion.
-
DTSTART:20250702T100000: This is the Date-Time START of the event. 20250702 is July 2nd, 2025. T100000 is 10:00:00 AM.
-
DTEND:20250702T103000: This is the Date-Time END of the event. Here, 10:30:00 AM.
-
SUMMARY:Coffee Break: This is the title or name of your event.
-
LOCATION:Office Kitchen: This is where the event is happening.
Summary
In this post, I have explained how to use AI chat to geneate calendar ICS content and import to Google Calendar, You should pay attention to the ICS
format when using this method to generate a calendar event if you want to quickly to this job.
Final Words + More Resources
My intention with this article was to help others who might be considering solving such a problem. So I hope that’s been the case here. If you still have any questions, don’t hesitate to ask me by email: Email me
Here are also the most important links from this article along with some further resources that will help you in this scope:
- 👨💻 Google Calendar
Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!