Skip to main content

caldav2ntfy

caldav2ntfy is a lightweight Linux CLI utility that watches local CalDAV calendar files and sends notifications to an ntfy server when relevant calendar changes are detected.

It is primarily useful in self-hosted environments where a CalDAV server (for example Radicale) is used together with ntfy for push notifications.

The tool relies on Linux inotify to watch .ics files, parses calendar events, and publishes notifications to a configured ntfy topic.


Use Cases

Typical setups where caldav2ntfy can be useful:

  • Self-hosted Radicale calendar server
  • vdirsyncer syncing CalDAV calendars locally
  • Personal ntfy server for notifications
  • Minimal Linux automation environments
  • Lightweight calendar reminder system without heavy clients

Example workflow:

Radicale → calendar file change → caldav2ntfy → ntfy notification

Features

  • Watches CalDAV .ics files using inotify
  • Sends notifications to an ntfy topic
  • Configurable through a TOML configuration file
  • Minimal dependencies
  • Designed for Linux environments
  • Simple CLI interface

Installation

Install from PyPI:

pip install caldav2ntfy

Configuration

caldav2ntfy is configured using a TOML file.

Example configuration:

[app]
default_watch_dir="/var/lib/radicale/collections/collection-root/<USER>/<CALENDAR>/"

[ntfy]
server="https://ntfy.sh"
topic="calendar_notif"
token="tk_xyzabc123="

Usage

Run the watcher using:

caldav2ntfy --config config.toml
caldav2ntfy

The program will monitor the configured calendar directory and send notifications when events are detected.


Overriding the config

You can override parameters from the config before running use caldav2ntfy --help to get a list of all available options


How It Works

  1. The program watches the calendar directory using Linux inotify.
  2. When a calendar file changes, it parses the .ics content.
  3. Relevant events are extracted.
  4. A notification is sent to the configured ntfy topic.

Requirements

  • Python >= 3.11+
  • Linux (uses inotify)
  • An ntfy server
  • A CalDAV setup (Radicale, Nextcloud, etc.)


License

MIT License

Release files for caldav2ntfy 0.1.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for caldav2ntfy 0.1.7
File Size Uploaded
caldav2ntfy-0.1.7.tar.gz 5.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for caldav2ntfy 0.1.7
File Interpreter ABI Platform
caldav2ntfy-0.1.7-py3-none-any.whl Python 3 none any Details

Total release size: 12.5 kB

Release files / caldav2ntfy-0.1.7.tar.gz

Download URL caldav2ntfy-0.1.7.tar.gz
Size 5.6 kB
Tags Source
SHA-256 checksum
How to use checksums
b0d6d4ba326c65ee140a9a242e17704707d66a60cb0000caafaadceed5cfe19d
BLAKE2b-256 checksum
How to use checksums
a5d2a997486b0b76b16e5d0f8dcfbe9460cd18e88140879062ee3bcf74a5f98e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release files / caldav2ntfy-0.1.7-py3-none-any.whl

Download URL caldav2ntfy-0.1.7-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2aa48f4874a7280a99a6e2f67a1656fdd24384ab7459596e3750998ddc70b7e9
BLAKE2b-256 checksum
How to use checksums
d0b4158815221819f5b185ea585b0964a6ebc85ba2f31160dd5dfccf28b9e2e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 17, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.7 This release

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page