Subject: [PATCH] add python-ical2orgpy and dependencies

From: Benjamin Slade <[email-masked]>
Date: Thu, 07 Dec 2023 11:56:57 -0600

--

'(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 <[email-masked]>
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(+)

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 <[email-masked]>
 ;;; Copyright © 2023 Attila Lendvai <[email-masked]>
 ;;; Copyright © 2023 Troy Figiel <[email-masked]>
+;;; Copyright © 2023 Benjamin Slade <[email-masked]>
 ;;;
 ;;; 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