Registry /
crm-productivity / pyobjc-framework-calendarstore
Install & Compatibility
Where this runs
tested against v? · pip install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.920 runs
build_error
glibcpy 3.10–3.920 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
CalCalendarStore
✓ from CalendarStore import CalCalendarStore
The CalendarStore framework itself is deprecated by Apple in macOS 10.8. EventKit is the recommended modern alternative.
CalEvent
✓ from CalendarStore import CalEvent
The CalendarStore framework itself is deprecated by Apple in macOS 10.8. EventKit is the recommended modern alternative.
CalTask
✓ from CalendarStore import CalTask
The CalendarStore framework itself is deprecated by Apple in macOS 10.8. EventKit is the recommended modern alternative.
This quickstart code demonstrates how to access the default CalendarStore, list available calendars, and print their titles and types. It requires the `pyobjc-framework-cocoa` for `NSDate` and `NSLog` functionality, which are commonly used in PyObjC applications.
import objc
from CalendarStore import CalCalendarStore
from Cocoa import NSDate, NSLog # Required for NSDate, commonly used with CalendarStore
# Get the default calendar store
store = CalCalendarStore.defaultCalendarStore()
if store:
NSLog("Successfully connected to CalendarStore.")
# List all calendars
calendars = store.calendars()
if calendars:
NSLog(f"Found {len(calendars)} calendars:")
for calendar in calendars:
NSLog(f" Name: {calendar.title()}, Type: {calendar.type()}")
else:
NSLog("No calendars found.")
else:
NSLog("Failed to get default CalendarStore.")
Debug
Known issues
deprecatedThe underlying macOS CalendarStore framework has been deprecated by Apple since macOS 10.8. For new development, Apple recommends using the EventKit framework. While pyobjc-framework-calendarstore is still maintained, its functionality is built upon an outdated macOS API.fixFor new applications, consider using PyObjC bindings for EventKit (pyobjc-framework-eventkit) instead. Existing applications may continue to use CalendarStore but should be aware of its deprecated status.
affects: All versions (due to underlying macOS API deprecation)
breakingPyObjC 12.0 and later dropped support for Python 3.9. PyObjC 11.0 dropped support for Python 3.8. Ensure your Python environment meets the minimum requirements for the PyObjC version you are using.fixUpgrade to Python 3.10 or later for PyObjC 12.x. For older Python versions, use PyObjC 11.1 (for Python 3.9) or PyObjC 10.3 (for Python 3.8).
affects: pyobjc-framework-calendarstore 11.0+
gotchaIn PyObjC 10.3, a change prevented user-defined `__init__` methods in Python subclasses of Objective-C classes from being called if a custom `__new__` method was not also explicitly implemented. This was partially reverted in 10.3.1 to allow `__init__` to work when `__new__` is present.fixIf subclassing Objective-C classes in Python and experiencing issues with `__init__`, ensure you are using PyObjC 10.3.1 or later. If you must use 10.3.0, explicitly implement `__new__` in your Python subclass if you also define `__init__`.
affects: pyobjc-framework-calendarstore 10.3 - 10.3.0
breakingPyObjC 11.1 aligned its behavior for initializer methods (those starting with 'init' in Objective-C) with `clang`'s Automatic Reference Counting (ARC) documentation. These methods now correctly 'steal' a reference to `self` and return a new reference. This might break code that relied on the previous PyObjC proxy behavior for `[NSObject alloc]` and its subsequent `init` method.fixReview code that customizes `alloc` and `init` sequences for Objective-C objects, especially where reference counting for `self` was explicitly managed or assumed specific behavior from older PyObjC versions. Refer to PyObjC 11.1 release notes for details on the ARC changes.
affects: pyobjc-framework-calendarstore 11.1+
gotchaPyObjC 11.0 introduced experimental support for free-threading (PEP 703) in Python 3.13. This involved significant internal changes to the core bridge. While aimed at performance improvements, experimental features can have unexpected behavior or require careful consideration for thread safety.fixWhen using PyObjC with Python 3.13's free-threading, thoroughly test your application for thread-related issues. Consult PyObjC documentation and release notes regarding free-threading support for best practices and known limitations.
affects: pyobjc-framework-calendarstore 11.0+ with Python 3.13+
Upgrade
Version history
12.2latest on PyPI · released May 30, 2026
Audit
Dependencies
pyobjc-corerequiredProvides the core Python to Objective-C bridge.
pyobjc-framework-cocoarequiredProvides fundamental Cocoa framework bindings, often implicitly required by other PyObjC frameworks.