]> git.rmz.io Git - dotfiles.git/blobdiff - mutt/ical2txt
lazyvim: absorb snacks notifier
[dotfiles.git] / mutt / ical2txt
index 5b7c998b237f1e53356ba03d6bfc0d785dd4014e..c0c9310532160c1a25cf25543105cd32db8155dc 100755 (executable)
@@ -1,10 +1,30 @@
 #!/usr/bin/env python3
 
 from icalendar import Calendar
 #!/usr/bin/env python3
 
 from icalendar import Calendar
+import datetime
 
 
-def format_cal(start, end, description):
-    str  = "Start: {:%Y-%m-%d %H:%M}\n".format(start)
-    str += "End:   {:%Y-%m-%d %H:%M}\n\n".format(end)
+def format_cal(event):
+    start = event.get('dtstart').dt
+    end   = event.get('dtend').dt
+    str = ""
+    if isinstance(start, datetime.datetime):
+        str += "Start: {:%Y-%m-%d %H:%M}\n".format(start.astimezone())
+        str += "End:   {:%Y-%m-%d %H:%M}\n".format(end.astimezone())
+    elif isinstance(start, datetime.date):
+        str += "Start: {:%Y-%m-%d}\n".format(start)
+        str += "End:   {:%Y-%m-%d}\n".format(end)
+
+    if event.get('attendee') is not None:
+        att = event.get('attendee')
+        if not isinstance(att, list):
+            att = [att]
+        attendees = [ a.params['cn'] for a in att]
+        str += "Attendees:\n"
+        for a in attendees:
+            str += "\t{}\n".format(a)
+        str += "\n"
+
+    description = event.get('description')
     if description is not None:
         str += description
 
     if description is not None:
         str += description
 
@@ -16,7 +36,4 @@ with open('/dev/stdin', 'r') as f:
 
 for c in cal.walk():
     if c.name == "VEVENT":
 
 for c in cal.walk():
     if c.name == "VEVENT":
-        print(format_cal(
-            c.get('dtstart').dt,
-            c.get('dtend').dt,
-            c.get('description')))
+        print(format_cal(c))