Skip to main content

Pythonic iCalendar (RFC 5545) Parser

Project description

Original repository (GitHub) - Bugtracker and issues (GitHub) - PyPi package (ics) - Documentation (Read The Docs).

Apache 2 License

You are viewing the README for the current development version on the main branch. To get the README for the current release, check out its PyPi page and the 0.7 branch of this repo.

To install the current development version, you can either use the following pip command or use a (slightly older) alpha release from PyPi.

pip install git+https://github.com/ics-py/ics-py.git

Ics.py is a pythonic and easy iCalendar library. Its goals are to read and write ics data in a developer friendly way.

iCalendar is a widely-used and useful format but not user friendly. Ics.py is there to give you the ability of creating and reading this format without any knowledge of it.

It should be able to parse every calendar that respects the rfc5545 and maybe some more… It also outputs rfc compliant calendars.

iCalendar (file extension .ics) is used by Google Calendar, Apple Calendar, Android and many more.

Ics.py is available for Python 3.8, 3.9, 3.10, 3.11, 3.12 and is Apache2 Licensed.

Quickstart

$ pip install ics
from datetime import datetime
from ics import Calendar, Event

c = Calendar()
e = Event()
e.summary = "My cool event"
e.description = "A meaningful description"
e.begin = datetime.fromisoformat("2022-06-06T12:05:23+02:00")
e.end = datetime.fromisoformat("2022-06-06T13:05:23+02:00")
c.events.append(e)
c
# Calendar(extra=Container('VCALENDAR', []), extra_params={}, version='2.0', prodid='ics.py 0.8.0.dev1 - http://git.io/lLljaA', scale=None, method=None, events=[Event(extra=Container('VEVENT', []), extra_params={}, timespan=EventTimespan(begin_time=datetime.datetime(2022, 6, 6, 12, 5, 23, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200))), end_time=None, duration=None, precision='second'), summary=None, uid='ed7975c7-01f1-42eb-bfc4-435afd76b33d@ed79.org', description=None, location=None, url=None, status=None, created=None, last_modified=None, dtstamp=datetime.datetime(2022, 6, 6, 19, 28, 14, 575558, tzinfo=Timezone.from_tzid('UTC')), alarms=[], attach=[], classification=None, transparent=None, organizer=None, geo=None, attendees=[], categories=[])], todos=[])
with open("my.ics", "w", newline="") as f:
    f.write(c.serialize())

More examples are available in the documentation.

Documentation

All the documentation is hosted on readthedocs.org and is updated automatically at every commit.

Contribute

Contribution are welcome of course! For more information and how to setup, see contributing.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ics-0.8.0.dev1.tar.gz (301.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ics-0.8.0.dev1-py3-none-any.whl (61.2 kB view details)

Uploaded Python 3

File details

Details for the file ics-0.8.0.dev1.tar.gz.

File metadata

  • Download URL: ics-0.8.0.dev1.tar.gz
  • Upload date:
  • Size: 301.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ics-0.8.0.dev1.tar.gz
Algorithm Hash digest
SHA256 b44f294f1a10f0fb938580a4c9c29ec8a5b6c3c5dbfac7fa3a4d9232334a5e4c
MD5 41ae668fa897987d1af78ec56e7cc4fd
BLAKE2b-256 bc2b12dff7b4bc9360168742c38690ba0f5f497c46f1a9541c4255f03afe5fa0

See more details on using hashes here.

File details

Details for the file ics-0.8.0.dev1-py3-none-any.whl.

File metadata

  • Download URL: ics-0.8.0.dev1-py3-none-any.whl
  • Upload date:
  • Size: 61.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ics-0.8.0.dev1-py3-none-any.whl
Algorithm Hash digest
SHA256 036dbb2806fb081646b2fe97aaa5e0df4a158e49829ee50eca5d3782699ef2b4
MD5 eef41cc6543a97e9769815fdad251265
BLAKE2b-256 de963059add06e99718f1217e8e5e4ca51f327928852ca407943c1c555664834

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page