newer py-caldav has split off the "icalendar-searcher" piece to a separate project. ok to import it + its BDEP?
tar includes:
devel/py-icalendar-searcher
devel/py-poetry-dynamic-versioning
and also needs the python.port.mk diff below. I also included the
py-caldav update if anyone wants to try that (it does have tests
which exercise some of the icalendar-searcher code).
Index: lang/python/3/python.port.mk
===================================================================
RCS file: /cvs/ports/lang/python/3/python.port.mk,v
diff -u -p -r1.21 python.port.mk
--- lang/python/3/python.port.mk 1 Feb 2026 20:57:09 -0000 1.21
+++ lang/python/3/python.port.mk 3 Feb 2026 16:26:22 -0000
@@ -136,6 +136,9 @@ BUILD_DEPENDS += devel/py-pbr \
devel/py-wheel
. elif ${MODPY_PYBUILD} == pdm
BUILD_DEPENDS += devel/py-pdm-backend
+. elif ${MODPY_PYBUILD} == poetry-dynamic-versioning
+BUILD_DEPENDS += devel/py-poetry-dynamic-versioning
+_MODPY_EXPECTED_BACKEND = poetry_dynamic_versioning
. elif ${MODPY_PYBUILD} == poetry-core
BUILD_DEPENDS += py3-poetry-core->=2.2.0:devel/py-poetry-core
_MODPY_EXPECTED_BACKEND = poetry.core
Index: productivity/py-caldav/Makefile
===================================================================
RCS file: /cvs/ports/productivity/py-caldav/Makefile,v
diff -u -p -r1.6 Makefile
--- productivity/py-caldav/Makefile 11 Nov 2025 08:30:50 -0000 1.6
+++ productivity/py-caldav/Makefile 3 Feb 2026 16:29:52 -0000
@@ -1,15 +1,15 @@
COMMENT= caldav client library for Python
# N.B. https://github.com/python-caldav/caldav/issues/530
-# 2.x.0 releases are expected to done using "requests" as a dep
-# 2.x.1 releases are expected to done using "niquests"
-# niquests depends on urllib3-future which *overrides* urllib3 in
-# a default install. either stick to py-caldav versions using
-# "requests", or if porting niquests, be sure to set the env var
-# during urllib3-future build to stop it overriding urllib3.
+# some 2.x releases are done using "requests" as a dep, some using
+# "niquests". check CHANGELOG.md to see which, we only want ones with
+# "requests" for now.
+# sthen has wip ports of niquests+deps but there are segfaults in
+# some of the new deps (and a hidden gotcha in urllib3-future with a
+# var to set to avoid it _overriding_ requests if installed).
#
-# python-caldav 3.x hoping to move to httpx, avoiding these problems
-MODPY_DISTV= 2.1.0
+# python-caldav 3.x may move to httpx, which would avoid these problems
+MODPY_DISTV= 2.2.4
GH_ACCOUNT= python-caldav
GH_PROJECT= caldav
GH_TAGNAME= v${MODPY_DISTV}
@@ -26,10 +26,14 @@ MODPY_PYBUILD= hatch-vcs
# yes, even though it's hatch
MAKE_ENV= SETUPTOOLS_SCM_PRETEND_VERSION=${MODPY_DISTV}
-RUN_DEPENDS= devel/py-icalendar \
+RUN_DEPENDS= textproc/py-lxml \
+ www/py-requests \
productivity/py-recurring-ical-events \
- textproc/py-lxml \
- www/py-requests
+ devel/py-icalendar \
+ devel/py-icalendar-searcher<2 \
+ net/py-dnspython \
+ devel/py-dateutil \
+ textproc/py-yaml
TEST_DEPENDS= devel/py-tzlocal \
textproc/py-vobject
Index: productivity/py-caldav/distinfo
===================================================================
RCS file: /cvs/ports/productivity/py-caldav/distinfo,v
diff -u -p -r1.3 distinfo
--- productivity/py-caldav/distinfo 11 Nov 2025 08:30:50 -0000 1.3
+++ productivity/py-caldav/distinfo 3 Feb 2026 16:29:52 -0000
@@ -1,2 +1,2 @@
-SHA256 (caldav-2.1.0.tar.gz) = BCQiVKeZI/GGZrIkBazS9ImT0AXTVaebUXbLed+BDNU=
-SIZE (caldav-2.1.0.tar.gz) = 180647
+SHA256 (caldav-2.2.4.tar.gz) = A/T+hc8aeDm4BTCXTnmXQdtbIzJoscgATWm5fi0JauY=
+SIZE (caldav-2.2.4.tar.gz) = 254643
Index: productivity/py-caldav/pkg/PLIST
===================================================================
RCS file: /cvs/ports/productivity/py-caldav/pkg/PLIST,v
diff -u -p -r1.5 PLIST
--- productivity/py-caldav/pkg/PLIST 23 Oct 2025 13:20:09 -0000 1.5
+++ productivity/py-caldav/pkg/PLIST 3 Feb 2026 16:29:52 -0000
@@ -25,10 +25,14 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}davclient.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}davobject.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}davobject.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}discovery.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}discovery.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}objects.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}objects.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}requests.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}requests.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}search.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}search.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/caldav/_version.py
lib/python${MODPY_VERSION}/site-packages/caldav/calendarobjectresource.py
lib/python${MODPY_VERSION}/site-packages/caldav/collection.py
@@ -36,6 +40,7 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/caldav/config.py
lib/python${MODPY_VERSION}/site-packages/caldav/davclient.py
lib/python${MODPY_VERSION}/site-packages/caldav/davobject.py
+lib/python${MODPY_VERSION}/site-packages/caldav/discovery.py
lib/python${MODPY_VERSION}/site-packages/caldav/elements/
lib/python${MODPY_VERSION}/site-packages/caldav/elements/__init__.py
lib/python${MODPY_VERSION}/site-packages/caldav/elements/${MODPY_PYCACHE}/
@@ -79,3 +84,4 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/caldav/objects.py
lib/python${MODPY_VERSION}/site-packages/caldav/py.typed
lib/python${MODPY_VERSION}/site-packages/caldav/requests.py
+lib/python${MODPY_VERSION}/site-packages/caldav/search.py
ical-searcher.tgz
Description: application/tar-gz
