]> git.rmz.io Git - dotfiles.git/blobdiff - mutt/ical2txt
lazyvim: absorb snacks notifier
[dotfiles.git] / mutt / ical2txt
index 70a8be24e410bbaa27a634a6d747db3cef337bf0..c0c9310532160c1a25cf25543105cd32db8155dc 100755 (executable)
@@ -1,18 +1,28 @@
 #!/usr/bin/env python3
 
 from icalendar import Calendar
+import datetime
 
 def format_cal(event):
     start = event.get('dtstart').dt
     end   = event.get('dtend').dt
-    str  = "Start: {:%Y-%m-%d %H:%M}\n".format(start.astimezone())
-    str += "End:   {:%Y-%m-%d %H:%M}\n".format(end.astimezone())
-
-    attendees = [ a.params['cn'] for a in event.get('attendee') ]
-    str += "Attendees:\n"
-    for a in attendees:
-        str += "\t{}\n".format(a)
-    str += "\n"
+    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: