Skip to content

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 event
2. It occurs at the last work day ,repeat monthly
3. Its title is "close IR and comment IPD for bswen.com"
4. It should remind me a day earlier at 17:00
5. 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:VCALENDAR
VERSION:2.0
PRODID:-//Google Inc//Google Calendar 2.0//EN
BEGIN:VEVENT
DTSTAMP:20250701T120000Z
SUMMARY:close IR and comment IPD for bswen.com
LAST-MODIFIED:20250701T120000Z
DTSTART;VALUE=DATE:20250731
DTEND;VALUE=DATE:20250801
RRULE:FREQ=MONTHLY;BYDAY=-1MO,-1TU,-1WE,-1TH,-1FR
TRANSP:TRANSPARENT
X-GOOGLE-CALENDAR-CONTENT-TITLE:close IR and comment IPD for bswen.com
ACTION:DISPLAY
DESCRIPTION:Reminder
TRIGGER:-P1DT17H0M0S
END:VALARM
END:VEVENT
END: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:VCALENDAR
VERSION:2.0
PRODID:-//Example Co.//NONSGML v1.0//EN
BEGIN:VEVENT
DTSTAMP:20250701T191857Z
DTSTART:20250702T100000
DTEND:20250702T103000
SUMMARY:Coffee Break
LOCATION:Office Kitchen
DESCRIPTION:Quick 30-minute coffee break with the team.
END:VEVENT
END: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:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!