Create ICS Calendar File in Python
An ICS file is an iCalendar file having .ics extension. An ICS file contains plain text with calendar event details such as starting and ending time of events, event description, etc.
In this example, we will use icalendar to create an ICS file in Python. icalendar is a Python library used to parse and generate iCalendar files.
Install icalendar
pip3 install icalendar
Here's a snippet of Python code to createn .ics file:
from icalendar import Calendar, Event, vCalAddress, vText
import pytz
from datetime import datetime
import os
from pathlib import Path
cal = Calendar()
cal.add('attendee', 'MAILTO:[email protected]')
cal.add('attendee', 'MAILTO:[email protected]')
event = Event()
event.add('summary', 'Python meeting about calendaring')
event.add('dtstart', datetime(2022, 10, 24, 8, 0, 0, tzinfo=pytz.utc))
event.add('dtend', datetime(2022, 10, 24, 10, 0, 0, tzinfo=pytz.utc))
event.add('dtstamp', datetime(2022, 10, 24, 0, 10, 0, tzinfo=pytz.utc))
organizer = vCalAddress('MAILTO:[email protected]')
organizer.params['cn'] = vText('Sir Jon')
organizer.params['role'] = vText('CEO')
event['organizer'] = organizer
event['location'] = vText('London, UK')
# Adding events to calendar
cal.add_component(event)
directory = str(Path(__file__).parent.parent) + "/"
print("ics file will be generated at ", directory)
f = open(os.path.join(directory, 'example.ics'), 'wb')
f.write(cal.to_ical())
f.close()
Read more in detail here.