]> git.rmz.io Git - dotfiles.git/blob - mutt/ical2txt
vim: disable last_loc and MyAutoChecktime autocmds in nvim
[dotfiles.git] / mutt / ical2txt
1 #!/usr/bin/env python3
2
3 from icalendar import Calendar
4 import datetime
5
6 def format_cal(event):
7 start = event.get('dtstart').dt
8 end = event.get('dtend').dt
9 str = ""
10 if isinstance(start, datetime.datetime):
11 str += "Start: {:%Y-%m-%d %H:%M}\n".format(start.astimezone())
12 str += "End: {:%Y-%m-%d %H:%M}\n".format(end.astimezone())
13 elif isinstance(start, datetime.date):
14 str += "Start: {:%Y-%m-%d}\n".format(start)
15 str += "End: {:%Y-%m-%d}\n".format(end)
16
17 if event.get('attendee') is not None:
18 att = event.get('attendee')
19 if not isinstance(att, list):
20 att = [att]
21 attendees = [ a.params['cn'] for a in att]
22 str += "Attendees:\n"
23 for a in attendees:
24 str += "\t{}\n".format(a)
25 str += "\n"
26
27 description = event.get('description')
28 if description is not None:
29 str += description
30
31 return str
32
33
34 with open('/dev/stdin', 'r') as f:
35 cal = Calendar.from_ical(f.read())
36
37 for c in cal.walk():
38 if c.name == "VEVENT":
39 print(format_cal(c))