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.1.tar.gz (60.2 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.1-py3-none-any.whl (20.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: caldav_event_pusher-0.1.1.tar.gz
  • Upload date:
  • Size: 60.2 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.1.tar.gz
Algorithm Hash digest
SHA256 ec50e49f6bd3f6fc8af27b00718882345500512e34879c1b9cdb88c05e3aae1a
MD5 99563e2d702fdba8260aa786335fff4b
BLAKE2b-256 8b33275f78073cb6303672a7c2aba61ce87f334cc81a31c20a86247d9e056647

See more details on using hashes here.

File details

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

File metadata

  • Download URL: caldav_event_pusher-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 20.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9bb1754b318cd9710d3f3a7f9c73dfbadbc3a6c46dc706759815d2e8a5244873
MD5 cfca2ee71ef853a6125d98b96c285b0c
BLAKE2b-256 1cb2c31c883e0fdb7b340010f4878a0e6ec996accd418a8aa330b6d1db50426a

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