Python clikit icalendarclikit CLI icalendar iCalendar
clikit APIclikit
icalendaricalendar iCalendar .icsicalendar
clikit icalendarclikit icalendar
1**** .ics
from clikit.api.io import Input, Outputfrom clikit.api.command import Commandfrom icalendar import Event, Calendarfrom datetime import datetimeclass CreateEventCommand(Command): def __init__(self, input: Input, output: Output): self.input = input self.output = output def execute(self): title = self.input.ask(':') start_time = self.input.ask(' (YYYY-MM-DD HH:MM):') end_time = self.input.ask(' (YYYY-MM-DD HH:MM):') # event = Event() event.add('summary', title) event.add('dtstart', datetime.fromisoformat(start_time)) event.add('dtend', datetime.fromisoformat(end_time)) # cal = Calendar() cal.add_component(event) # .ics with open('event.ics', 'wb') as f: f.write(cal.to_ical()) self.output.write(' event.ics ')#
clikit icalendar .ics
2**** .ics
from clikit.api.io import Input, Outputfrom clikit.api.command import Commandfrom icalendar import Calendarclass ViewEventsCommand(Command): def __init__(self, input: Input, output: Output): self.input = input self.output = output def execute(self): file_path = self.input.ask(' .ics :') with open(file_path, 'rb') as f: cal = Calendar.from_ical(f.read()) self.output.write(':') for component in cal.walk('vevent'): summary = component.get('summary') start = component.get('dtstart').dt end = component.get('dtend').dt self.output.write(f'- {summary}: {start} {end}')#
.ics icalendar from_ical
3**** .ics
from clikit.api.io import Input, Outputfrom clikit.api.command import Commandfrom icalendar import Calendarclass ModifyEventCommand(Command): def __init__(self, input: Input, output: Output): self.input = input self.output = output def execute(self): file_path = self.input.ask(' .ics :') summary_to_modify = self.input.ask(':') new_summary = self.input.ask(':') with open(file_path, 'rb') as f: cal = Calendar.from_ical(f.read()) for component in cal.walk('vevent'): if component.get('summary') == summary_to_modify: component['summary'] = new_summary with open(file_path, 'wb') as f: f.write(cal.to_ical()) self.output.write(f' "{summary_to_modify}" "{new_summary}" ')#
.ics
**** datetime.strptime
from datetime import datetimetry: start_time = datetime.strptime(self.input.ask(' (YYYY-MM-DD HH:MM):'), '%Y-%m-%d %H:%M')except ValueError: self.output.write(' YYYY-MM-DD HH:MM ')
**** .ics
**** FileNotFoundError
try: with open(file_path, 'rb') as f: cal = Calendar.from_ical(f.read())except FileNotFoundError: self.output.write('')
try: from icalendar import Calendarexcept ImportError: self.output.write(' icalendar pip install icalendar ')
clikit icalendar Python