(address . guix-patches@gnu.org)
--
'(Dr Benjamin Slade (he/him)
(website . https://lambda-y.net)
`(pgp_fp: ,(21BA 2AE1 28F6 DF36 110A 0E9C A320 BBE8 2B52 EE19))
"sent by mu4e 1.10.8 in Emacs 30.0.50 with org-msg on GNU Guix (Linux)")
From 695b50a3744a8bd31a7e4578aaf7e5bb0fc4a36e Mon Sep 17 00:00:00 2001
From: Benjamin Slade <slade@lambda-y.net>
Date: Thu, 7 Dec 2023 11:55:03 -0600
Subject: [PATCH] add python-ical2orgpy and dependencies
---
gnu/packages/python-xyz.scm | 84 +++++++++++++++++++++++++++++++++++++
1 file changed, 84 insertions(+)
Toggle diff (104 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 86f8d81..67345d8 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -146,6 +146,7 @@
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
+;;; Copyright © 2023 Benjamin Slade <slade@lambda-y.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -34377,6 +34378,89 @@ (define-public python-zeroc-ice-3.6
(base32
"0mikjfvq26kh8asnn9v55z41pap4c5ypymqnwwi4xkavc3mzyda2"))))))
+(define-public python-x-wr-timezone
+ (package
+ (name "python-x-wr-timezone")
+ (version "0.0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "x_wr_timezone" version))
+ (sha256
+ (base32 "0j5zjvrshn7smq6cgbh7l66dl64wqs18cfyfnq1np1y00g320pha"))))
+ (build-system python-build-system)
+ (arguments
+ ;; Broken tests or cyclic dependecies with other packages.
+ '(#:phases (modify-phases %standard-phases
+ (delete 'sanity-check))
+ #:tests? #f))
+ (propagated-inputs (list python-icalendar python-pytz))
+ (home-page "https://github.com/niccokunzmann/x-wr-timezone")
+ (synopsis "Handling of non-standard X-WR-TIMEZONE icalendar property")
+ (description
+ "Some calendar providers introduce the non-standard X-WR-TIMEZONE
+parameter to ICS calendar files. Strict interpretations according to RFC 5545 ignore
+ the X-WR-TIMEZONE parameter. This causes the times of the events to differ from those
+ which make use of X-WR-TIMEZONE. This module aims to bridge the gap by converting
+ calendars using X-WR-TIMEZONE to a strict RFC 5545 calendars.")
+ (license license:lgpl3+)))
+
+(define-public python-recurring-ical-events
+ (package
+ (name "python-recurring-ical-events")
+ (version "2.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "recurring_ical_events" version))
+ (sha256
+ (base32 "00k4l800j2d3zfqhxjlzjk0b6493wqhmg4r58xsp12sx2ia2sxla"))))
+ (build-system python-build-system)
+ (arguments
+ ;; Broken tests or cyclic dependecies with other packages.
+ '(#:phases (modify-phases %standard-phases
+ (delete 'sanity-check))
+ #:tests? #f))
+ (propagated-inputs (list python-x-wr-timezone python-icalendar python-pytz))
+ (home-page "https://github.com/niccokunzmann/python-recurring-ical-events")
+ (synopsis
+ "Python library for recurrence of ical events based on icalendar")
+ (description
+ "ICal has some complexity to it: Events, TODOs and Journal entries can
+ be repeated, removed from the feed and edited later on.
+This tool takes care of these circumstances.")
+ (license license:lgpl3+)))
+
+(define-public python-ical2orgpy
+ (package
+ (name "python-ical2orgpy")
+ (version "0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ical2orgpy" version))
+ (sha256
+ (base32 "0a2ai78jzn250s1dlsimsfp6035421nrabj08xdlgsh7mb82gkap"))))
+ (build-system python-build-system)
+ (arguments
+ ;; Broken tests or cyclic dependecies with other packages.
+ '(#:phases (modify-phases %standard-phases
+ (delete 'sanity-check))
+ #:tests? #f))
+ (propagated-inputs (list python-click python-icalendar python-pytz
+ python-tzlocal python-recurring-ical-events))
+ (home-page "https://github.com/ical2org-py/ical2org.py")
+ (synopsis "Convert ical .ics file to org-mode")
+ (description
+ "This python script converts an ical calendar (for instance, as exported
+ from google calendar) into an org-mode document. It is conceived as a replacement of
+ the awk script located at
+@url{https://orgmode.org/worg/org-tutorials/org-google-sync.html}.
+ The main difference is that ical2orgpy correctly manages recurring events of
+ @dfn{yearly}, @dfn{daily} and @dfn{weekly} types. ical2orgpy duplicates all recurring
+ events falling into a specified time-frame into the exported org-document.")
+ (license license:gpl3+)))
+
;;;
;;; Avoid adding new packages to the end of this file. To reduce the chances
;;; of a merge conflict, place them above by existing packages with similar
--
2.41.0