aboutsummaryrefslogtreecommitdiff
path: root/module/calp/entry-points/ical.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/calp/entry-points/ical.scm')
-rw-r--r--module/calp/entry-points/ical.scm31
1 files changed, 31 insertions, 0 deletions
diff --git a/module/calp/entry-points/ical.scm b/module/calp/entry-points/ical.scm
new file mode 100644
index 00000000..3bf211df
--- /dev/null
+++ b/module/calp/entry-points/ical.scm
@@ -0,0 +1,31 @@
+(define-module (calp entry-points ical)
+ :export (main)
+ :use-module (util)
+ :use-module (util options)
+ :use-module (output ical)
+ :use-module (ice-9 getopt-long)
+ :use-module (datetime)
+ )
+
+(define opt-spec
+ '((from (value #t) (single-char #\F))
+ (to (value #t) (single-char #\T)
+ (description "Returns all elements between these two dates."))
+ (help (single-char #\h)
+ (description "Print this help."))))
+
+(define (main args)
+ (define opts (getopt-long args (getopt-opt opt-spec)))
+
+ (define start (cond [(option-ref opts 'from #f) => parse-freeform-date]
+ [else (start-of-month (current-date))]))
+ (define end (cond [(option-ref opts 'to #f) => parse-freeform-date]
+ ;; [else (normalize-date* (set (month start) = (+ 1)))]
+ [(date+ start (date month: 1))]
+ ))
+
+ (when (option-ref opts 'help #f)
+ (print-arg-help opt-spec)
+ (throw 'return))
+
+ (print-events-in-interval start end))