Registry / crm-productivity / pyobjc-framework-calendarstore

pyobjc-framework-calendarstore

JSON →
library12.2pypypiunverified

PyObjC-framework-CalendarStore provides Python wrappers for the macOS CalendarStore framework (deprecated since macOS 10.8). It enables Python scripts to access, modify, and receive notifications for iCal data, including calendars, events, and tasks. The library releases new versions regularly, typically aligning with macOS SDK updates and Python version support, with version 12.1 being the current stable release.

pip install pyobjc-framework-calendarstore
INSTALL
IMPORT
SIG · PYOBJC-FRAMEWORK-C
P
pyobjc-framework-calendarstore
crm-productivitypythonv12.2
Install
Import
Disk
Pass rate
0/ 10
Env Coverage0 / 10
glibc
3.93.13
musl
3.93.13
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
musl
py 3.103.920 runs
build_error
glibc
py 3.103.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.
fix
For 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.
fix
Upgrade 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.
fix
If 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.
fix
Review 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.
fix
When 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.
Agent activity
35 hits · last 30 days
node
32
OpenAI (training)
1
Resources
pyobjc-framework-calendarstore — pip install pyobjc-framework-calendarstore · libregistry