icalevents
Simple Python 3 library to download, parse and query iCal sources.
What it is and what it does
iCalEvents is a lightweight Python library for working with iCalendar (.ics) data from remote URLs or local files. It wraps icalendar and adds convenience functions to download calendar feeds and extract events, making it simpler to integrate calendar data into Python applications without manually handling HTTP requests or low-level parsing.
The library depends on icalendar, python-dateutil, pytz, and urllib3. It targets Python 3.9 and later and is maintained by the Jazzband community, though recent activity has slowed (last release 322 days ago). No known security vulnerabilities are recorded.
Use it for:
- Fetch and display upcoming events from a public Google Calendar or iCloud calendar URL in a web dashboard.
- Parse exported .ics files to populate a local event database or sync calendar data between systems.
- Build a calendar aggregator that pulls events from multiple iCal sources and merges them into a unified view.
- Extract event metadata (title, date, time, attendees) from calendar feeds for reporting or filtering.
- Integrate calendar data into a scheduling or availability-checking application.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Downloads, parses, and queries iCalendar (.ics) sources from URLs or local files, extracting event data for use in Python applications.
Yes, if you need straightforward iCalendar parsing and downloading. The library has low install friction, permissive licensing, and no known vulnerabilities. However, the aging maintenance status (322 days since last release) means you should verify it handles your specific calendar format and features before committing to it in a production system. For simple, read-only calendar integration, it is a solid choice.
Install
icalevents on PyPI
pip
pip install icaleventsuv
uv add icaleventspoetry
poetry add icaleventsInstalling icalevents
Before you install
Low install friction with a pure-Python wheel distribution. Maintenance status is aging—last release was 322 days ago—so expect slower response to issues, though the package remains functional for its core use case.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install icalevents
from icalevents.icalevents import events
# Fetch and parse events from a calendar URL
es = events(url='https://example.com/calendar.ics')
for event in es:
print(event.summary, event.start)
Requires Python 3.9 or later; urllib3 must be able to reach the calendar URL if fetching from a remote source.
Verify before relying
- Whether the package handles recurring events or only single instances.
- Performance characteristics when parsing large calendars or fetching from slow sources.
- Specific behavior differences between fix_apple=True and default parsing modes.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — icalendar, python-dateutil, pytz, urllib3 |
| Maintenance | aging — 322 days since the last release |
| First released | |
| Downloads | 579,880/month — #5,915 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: icalevents-0.3.1-py3-none-any.whl
Tags
More Internet packages
Botocore provides low-level, data-driven access…
permissive · top 100 on PyPI
aiobotocoreProvides an async client for AWS services using…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
filelockProvides a platform-independent file locking…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
googleapis-common-protosProvides common Protocol Buffer message…
permissive · top 100 on PyPI
icalParse, create, and iterate over iCalendar (RFC…
permissive · top 15,000 on PyPI
icalendarParses, creates, and modifies iCalendar files…
permissive · top 5,000 on PyPI
icsReads and writes iCalendar (RFC 5545) files in…
permissive · top 15,000 on PyPI
recurring-ical-eventsExpands recurring iCalendar events (RFC 5545)…
copyleft · top 5,000 on PyPI
icalendar-searcherSearches, filters, and sorts iCalendar…
agpl · top 15,000 on PyPI
django-icalGenerates iCalendar (iCal) feeds from Django…
permissive · top 15,000 on PyPI
vobjectParses and serializes iCalendar and vCard…
permissive · top 5,000 on PyPI
pyicloudPyiCloud provides Python access to iCloud web…
permissive · top 15,000 on PyPI
pyobjc-framework-CalendarStoreProvides Python bindings to macOS's…
permissive · top 15,000 on PyPI
types-icalendarProvides type stubs for the icalendar package,…
permissive · top 15,000 on PyPI