Stupid but useful AI tricks: Creating calendar entries from an image using Anthropic Claude 3.5

Greg WilsonGreg Wilson
4 min read

A few days ago, my jazz piano teacher sent me the new fall/winter schedule for my private jazz piano lessons -- 13 different dates -- as a JPG (mine are outlined in green marker):

I was too lazy to go make 13 entries in Google Calendar, so I decided to see if Claude could help me out:

I first uploaded the jpg to Claude 3.5 Sonnet)...

My prompt: List the dates that are outlined in green

The dates outlined in green in the image are:

Friday, 13-Sep-24 Friday, 27-Sep-24 Friday, 11-Oct-24 Friday, 8-Nov-24 Friday, 6-Dec-24 Friday, 20-Dec-24 Friday, 17-Jan-25 Friday, 31-Jan-25 Friday, 28-Feb-25 Friday, 14-Mar-25 Friday, 11-Apr-25 Friday, 25-Apr-25 Friday, 23-May-25

These dates correspond to the Friday column for students who have their first every-other-week lesson starting the week of Tuesday Sept 10, 2024.

Cool - that was easy and accurate. Now I need to get it into my calendar, so I asked it to create an ics file...

My prompt: Create a calendar ics file that creates an appointment on each of those dates at 2pm pacific time. The appointment title will be “Jazz Piano Lesson”

Certainly. I'll create an ICS (iCalendar) file with appointments for "Jazz Piano Lesson" on each of the dates you specified, set for 2:00 PM Pacific Time.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Claude//Jazz Piano Lessons//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20240913T210000Z
DTEND:20240913T220000Z
DTSTAMP:20240824T000000Z
UID:20240913jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20240927T210000Z
DTEND:20240927T220000Z
DTSTAMP:20240824T000000Z
UID:20240927jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20241011T210000Z
DTEND:20241011T220000Z
DTSTAMP:20240824T000000Z
UID:20241011jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20241108T220000Z
DTEND:20241108T230000Z
DTSTAMP:20240824T000000Z
UID:20241108jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20241206T220000Z
DTEND:20241206T230000Z
DTSTAMP:20240824T000000Z
UID:20241206jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20241220T220000Z
DTEND:20241220T230000Z
DTSTAMP:20240824T000000Z
UID:20241220jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20250117T220000Z
DTEND:20250117T230000Z
DTSTAMP:20240824T000000Z
UID:20250117jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20250131T220000Z
DTEND:20250131T230000Z
DTSTAMP:20240824T000000Z
UID:20250131jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20250228T220000Z
DTEND:20250228T230000Z
DTSTAMP:20240824T000000Z
UID:20250228jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20250314T210000Z
DTEND:20250314T220000Z
DTSTAMP:20240824T000000Z
UID:20250314jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20250411T210000Z
DTEND:20250411T220000Z
DTSTAMP:20240824T000000Z
UID:20250411jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20250425T210000Z
DTEND:20250425T220000Z
DTSTAMP:20240824T000000Z
UID:20250425jazzpiano@claude.ai
END:VEVENT
BEGIN:VEVENT
SUMMARY:Jazz Piano Lesson
DTSTART:20250523T210000Z
DTEND:20250523T220000Z
DTSTAMP:20240824T000000Z
UID:20250523jazzpiano@claude.ai
END:VEVENT
END:VCALENDAR

I've created an ICS file with the following details:

  1. Each event is titled "Jazz Piano Lesson"

  2. The events are scheduled for 2:00 PM Pacific Time on each of the specified dates

  3. Each event is set to last for one hour

  4. The time zone is properly adjusted to UTC (Z) in the file

  5. Unique identifiers (UIDs) are provided for each event

You can save this content as a .ics file and import it into most calendar applications. Here are a few notes about the file:

  1. The times are in UTC (Coordinated Universal Time). 2:00 PM Pacific Time translates to 9:00 PM UTC (21:00) for dates not in Daylight Saving Time, and 10:00 PM UTC (22:00) for dates within Daylight Saving Time. The file accounts for these changes.

  2. The DTSTAMP for all events is set to the date of this conversation (August 24, 2024) as a placeholder. Your calendar application will likely update this when you import the events.

  3. The UID for each event is unique, based on the date of the lesson and a simple string.

To use this file:

  1. Copy the content of the artifact

  2. Paste it into a new text file

  3. Save the file with a .ics extension (e.g., "jazz_piano_lessons.ics")

  4. Import this file into your preferred calendar application

Most calendar applications should be able to read this file and create the appropriate recurring events. Let me know if you need any modifications or have any questions!

I went to calendar.google.com, imported the ics, and my appointments were imported perfectly!
(To import ics files into Google calendar, go to the calendar settings, then to import/export)

I'm pleasantly surprised at how easy this was!

I tried the exact same thing in ChatGPT -- it identified the dates in the images, but it said it was was unable to create an .ics file. However, it did give me some Python code to create the ics file for me. I came back to that conversation later and said, "Just show me the content of the .ics file" and it did!

6
Subscribe to my newsletter

Read articles from Greg Wilson directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Greg Wilson
Greg Wilson

My day job is leading the AWS Documentation and SDK/CLI teams but all views expressed here are personal and do not represent those of AWS. I blog about my interest -- these include coding, networking, photography, aviation, EVs, and other ramblings.