aboutsummaryrefslogtreecommitdiff
path: root/src/ics.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/ics.ml')
-rw-r--r--src/ics.ml10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ics.ml b/src/ics.ml
index 888e9e8..d6d165a 100644
--- a/src/ics.ml
+++ b/src/ics.ml
@@ -17,6 +17,8 @@
open CalendarLib
+module StringSet = Set.Make (String)
+
let to_date = Printer.Calendar.sprint "%Y%m%dT%H%M%S"
let current_date () = to_date @@ Calendar.now ()
@@ -61,6 +63,8 @@ module Event = struct
let has_groups groups event =
List.fold_left (fun found group ->
found || List.exists ((=) group) groups) false event.groups
+
+ let get_groups event = event.groups
end
type t = Event.t list
@@ -80,6 +84,12 @@ let gen_vtimezone tz =
else
""
+let get_all_groups events =
+ let add_groups_to_set set event =
+ List.fold_left (fun set elt -> StringSet.add elt set) set @@ Event.get_groups event in
+ List.fold_left add_groups_to_set StringSet.empty events
+ |> StringSet.to_seq
+
let to_string tz events =
let date = current_date () in
let vtimezone = gen_vtimezone tz in