GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - scientific-python/yaml2ics: Convert YAML calendar entries to ICS

BranchesTags
Open more actions menu

Latest commit

 

History

157 Commits
157 Commits

Folders and files

NameName
Last commit message
Last commit date
.github
.github
 
 
example
example
 
 
tests
tests
 
 
.gitignore
.gitignore
 
 
.pre-commit-config.yaml
.pre-commit-config.yaml
 
 
CHANGELOG.md
CHANGELOG.md
 
 
LICENSE
LICENSE
 
 
MANIFEST.in
MANIFEST.in
 
 
README.md
README.md
 
 
RELEASE.md
RELEASE.md
 
 
pyproject.toml
pyproject.toml
 
 
yaml2ics.py
yaml2ics.py
 
 

Repository files navigation

PyPI Test status Test coverage

YAML to iCalendar (ics)

WARNING: this project is still in beta. Beware of breaking changes!

Convert YAML files to .ics files which can be imported into other calendar applications.

Features include:

  • Converting single .yaml files, or combining multiple into one .ics file.
  • ics fields: name, summary, description, location, timezone, repeat
  • Specify event start+end or start+duration
  • Recurring events (basic support)
  • All-day events
  • Timezone specification (default or per-event)

Installation

pip install yaml2ics

Usage

To produce a calendar from a list of events:

python yaml2ics.py example/test_calendar.yaml

To combine lists of events in to a calendar:

python yaml2ics.py example/test_calendar.yaml example/another_calendar.yaml

Syntax

Please see example/test_calendar.yaml for a full demo including explanations. Below is a minimal template that shows the basic idea:

name: Calendar Name
timezone: Europe/Helsinki # default timezone for events, optional

events:
  - summary: The event title
    begin: 2021-09-21 15:00:00
    duration:
      minutes: 30
    location: |
      https://meet.jit.si/example
    description: |
      In this meeting we will ...

Timezones

The event timezone can be specified in three ways (in reverse order of precedence):

  1. Using the timezone: ... field, as shown above under "Syntax".

  2. Adding it to an individual event:

    - summary: My event
      timezone: America/Los_Angeles
  3. By specifying a timezone in the event start time:

    2021-09-21 15:00:00 +07:00
    

Valid timezones are listed at https://datetime.app/iana-timezones

If no timezone is set, we default to UTC. And, in fact, this is the recommended way to use UTC. Timezones like Etc/UTC are not well understood by, e.g., Google Calendar.

Contributing

Contributions are welcomed! This project is still in active development and should be considered beta.

To install the development version, fork the source of the project and make an editable install:

pip install -e ".[test]"

To test:

pytest

Generate a coverage report with:

pytest --cov-report term-missing --cov yaml2ics

black and other linters are used to auto-format files (and enforced by CI). To install the git hooks, use pre-commit install. To run the tests/auto-formatting manually, use pre-commit run --all-files.

About

Convert YAML calendar entries to ICS

Resources

Readme
BSD-3-Clause license

Code of conduct

Code of conduct

Contributing

Contributing

Security policy

Security policy
Activity
Custom properties

Stars

23 stars

Watchers

7 watching

Forks

7 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.