Skip to main content

Push (or update) events to a CalDAV calendar

Project description

๐Ÿ“… CalDAV Event Pusher

This is a tool to automate bulk creation and updates of events on a CalDAV calendar server such as Radicale. You give it some JSON mapping an arbitrary unique ID to VEVENT keys and it'll update existing events on the server or create new events:

myevents.json:

{
  "myevent-1234": {
    "SUMMARY": "My Event 1234",
    "DTSTART": "20260216T104500Z",
    "DTEND": "20260216T121500Z"
  },
  "myevent-2345": {
    "SUMMARY": "My Event 2345",
    "LOCATION": "here and there",
    "DTSTART": "20260217T163000Z",
    "DTEND": "20260217T183000Z"
  }
}

credentials.sh:

export CALDAV_USER=myuser
export CALDAV_PASSWORD=mypassword
export CALDAV_SERVER=https://caldav.myserver.de
> source credentials.sh # source credentials environment variables (to not have password in shell history)
> caldav-event-pusher --calendar uas --eventsfile myevents.json --dry-run # first check changes, then remove the --dry-run
...
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โœจ New event 'myevent-1234' โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  โž•                       UID    โ†’  b19c122d-eead-4de7-8f69-a3ac34450e14  โ”‚
โ”‚  โž•                   SUMMARY    โ†’  My Event 1234                         โ”‚
โ”‚  โž•                   DTSTART    โ†’  2026-02-16T10:45:00+00:00             โ”‚
โ”‚  โž•                     DTEND    โ†’  2026-02-16T12:15:00+00:00             โ”‚
โ”‚  โž•  X-CALDAV-EVENT-PUSHER-ID    โ†’  myevent-1234                          โ”‚
โ”‚  โž•             LAST-MODIFIED    โ†’  2026-02-16T14:50:35.214112+00:00      โ”‚
โ”‚  โž•                   DTSTAMP    โ†’  2026-02-16T14:50:35.214112+00:00      โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โœจ New event 'myevent-2345' โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  โž•                       UID    โ†’  9f29985c-7db1-47b2-bd21-0664349eba4b  โ”‚
โ”‚  โž•                   SUMMARY    โ†’  My Event 2345                         โ”‚
โ”‚  โž•                  LOCATION    โ†’  here and there                        โ”‚
โ”‚  โž•                   DTSTART    โ†’  2026-02-17T16:30:00+00:00             โ”‚
โ”‚  โž•                     DTEND    โ†’  2026-02-17T18:30:00+00:00             โ”‚
โ”‚  โž•  X-CALDAV-EVENT-PUSHER-ID    โ†’  myevent-2345                          โ”‚
โ”‚  โž•             LAST-MODIFIED    โ†’  2026-02-16T14:50:35.224139+00:00      โ”‚
โ”‚  โž•                   DTSTAMP    โ†’  2026-02-16T14:50:35.224139+00:00      โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
...
# If you uploaded, then change myevents.json, and rerun:
> caldav-event-pusher --calendar uas --eventsfile myevents.json --dry-run # first check changes, then remove the --dry-run
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿ“ Changes to 'myevent-2345' โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚  ๐Ÿ“  LOCATION  here and there  โ†’  that location           โ”‚
โ”‚  ๐Ÿ“   SUMMARY  My Event 2345   โ†’  My specific Event 2345  โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

caldav_event_pusher-0.1.0.tar.gz (60.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

caldav_event_pusher-0.1.0-py3-none-any.whl (20.7 kB view details)

Uploaded Python 3

File details

Details for the file caldav_event_pusher-0.1.0.tar.gz.

File metadata

  • Download URL: caldav_event_pusher-0.1.0.tar.gz
  • Upload date:
  • Size: 60.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"NixOS","version":"25.11","id":"xantusia","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for caldav_event_pusher-0.1.0.tar.gz
Algorithm Hash digest
SHA256 17281600ce606d88d01860aa0fa22677b28b39d3ecad4aa0a24bfe263ad4de85
MD5 a3a7508e8db46c472bc499b5ab679d0f
BLAKE2b-256 11c93e35f198ab0ee8236092b9ead28ef0e15dd501ab5cf22c8fa6200a5aefad

See more details on using hashes here.

File details

Details for the file caldav_event_pusher-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: caldav_event_pusher-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 20.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.13 {"installer":{"name":"uv","version":"0.9.13"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"NixOS","version":"25.11","id":"xantusia","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for caldav_event_pusher-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 893c2d30f818f4839ad9127aec90153ae1e43aa82403ddf3b5db3b8c71ee2b93
MD5 f39d96122e09e7cff7a0f18e3e10dc2e
BLAKE2b-256 11b50c68c3ab2a7585259c0be75122d8ecb23a72972a4374c5105d64f57fe186

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page