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 for parsing and generating iCalendar files.
Follow these steps to create an .ics file using the icalendar library in Python:
- Install icalendar:
- Example:
pip install icalendar
Here's a code snippet to create an .ics file in Python:
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:abc@example.com')
cal.add('attendee', 'MAILTO:xyz@example.com')
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:hello@example.com')
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()