Skip to main content

Merge RFC5545 calendar files

Project description

A simple Python script to merge RFC5545 calendar files. It accepts several input calendars (referred to as sources) and processes them into one or more output calendar (sinks).

Installation

$ pip install merge_ics

Usage

$ merge_ics <config_file>

Config file format

merge_ics reads configuration from YAML files passed through the command line as above. These YAML files should contain two nodes:

  • sources specifies the input calendars, and

  • sinks describes the calendars that should be outputted by the script.

sources

The sources node should contain a mapping whose keys are arbitrary identifiers for the input calendars. The values should again be mappings, with the possible keys being filename and url. The value for filename should describe a local ics file, while that for url should point to a remote one. The presence of both keys will result in merge_ics trying to read and parse the local copy, downloading the remote copy only in case of error.

sinks

The sinks node should contain a collection, each of which is a descriptor for an output calendar. These sink descriptors should contain three keys:

  • filename: the filename where to write the calendar.

  • sources: a mapping with keys being the arbitrary identifiers of the sources that you want to merge. The events from each of these source calendars will be given the corresponding values in a CATEGORIES prop.

  • options: a mapping of calendar-level props. Make sure to always include version and prodid (otherwise the resulting ics file will be non-conformant).

Example

sources:
  1:
    filename: https://example.com/cal_local.ics
  online_cal:
    url: https://example.com/cal_online.ics
  2:
    filename: cal2.ics
    url: https://example.com/cal2.ics
sinks:
  -
    filename: output_cal1.ics
    sources:
      1: Local Events
    options:
      version: 2.0
      prodid: -//Owner//LocalEvents//EN
      x-wr-calname: Local Events
      x-wr-caldesc: Events from my local calendar
      calscale: GREGORIAN
      method: PUBLISH
      x-published-ttl: PT15M
  -
    filename: output_cal123.ics
    sources:
      1: Local Events
      online_cal: Online Events
      2: Another Category
    options:
      version: 2.0
      prodid: -//Owner//Merged//EN
      x-wr-calname: Merged Calendar
      x-wr-caldesc: All my events
      calscale: GREGORIAN
      method: PUBLISH
      x-published-ttl: PT15M

License

MIT

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

merge_ics-0.2.0.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

merge_ics-0.2.0-py2.py3-none-any.whl (6.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file merge_ics-0.2.0.tar.gz.

File metadata

  • Download URL: merge_ics-0.2.0.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for merge_ics-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a7d787f84939dff7d5ae3b0564761cb26ebb000ee1241591784aec054984d98b
MD5 bd24aa67bf5382984882790c21d175bd
BLAKE2b-256 1a0dab31a1796fd52b45f7ea5a33f3d68da7869687b306064b0eb01d9182ae8d

See more details on using hashes here.

File details

Details for the file merge_ics-0.2.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for merge_ics-0.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 974f899004f1fdd407cd9de9b8571169cc6223addc9dff13b7b381da617aa80e
MD5 241680946ef6db11c2a1959565e48ad1
BLAKE2b-256 690d3452be50c57f2adf5f1c23742d7460f70b0dcb3224f6a04a244b629d4fbe

See more details on using hashes here.

Supported by

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