import csv from icalendar import Calendar, Event, Alarm from datetime import datetime, timedelta import pytz #Subject,Start Date,Start Time,End Date,End Time,Description,Location #Meeting,10-08-2024,10.00,10-08-2024,11.00,Project discussion,Conference Room #Typ;Temat;Rozpoczęcie;Koniec;Postęp;Miejsce;Priorytet;Kategoria;Załączniki;Czas trwania;Status;Data Utworzenia;Zmiany;Zakończone;Przypomnienie;Powtarzalność;Terminarz;Uczestnicy;Tagi;Notatki def csv_to_ical(csv_file_path, ical_file_path, date_format='%d.%m.%Y'): cal = Calendar() with open(csv_file_path, mode='r', encoding='utf-8') as csv_file: csv_reader = csv.DictReader(csv_file, delimiter=';') for row in csv_reader: event = Event() start_date = datetime.strptime(row['Start'], date_format).date() end_date = datetime.strptime(row['Koniec'], date_format).date() + timedelta(days=1) event.add('summary', row['Temat']) event.add('dtstart', start_date) event.add('dtend', end_date) event.add('description', row['Tagi']) event.add('transp', 'TRANSPARENT') # Dodajemy przypomnienie alarm = Alarm() alarm.add('action', 'DISPLAY') alarm.add('description', 'Przypomnienie: ' + row['Temat']) alarm.add('trigger', timedelta(minutes=-30)) # Przypomnienie 30 minut przed event.add_component(alarm) cal.add_component(event) with open(ical_file_path, mode='wb') as ical_file: ical_file.write(cal.to_ical()) # Ścieżki do plików CSV i iCal csv_file_path = 'events.csv' ical_file_path = 'events.ics' # Wywołanie funkcji csv_to_ical(csv_file_path, ical_file_path)