diff --git a/mycaldav/models.py b/mycaldav/models.py index ac0b273..7ab071f 100644 --- a/mycaldav/models.py +++ b/mycaldav/models.py @@ -7,6 +7,7 @@ import ssl from icalendar import Calendar, Event import recurring_ical_events +import caldav # Create your models here. class cls_caldav(): @@ -53,6 +54,7 @@ class cls_caldav(): for event in events: item = _caldav_item() item.name = event["SUMMARY"] + item.uiid = event["UID"] if "-" in item.name: arr = item.name.split("-") item.key = arr[0] @@ -92,6 +94,37 @@ class cls_caldav(): self.sort_array() return self.data +class cls_caldav_client(): + caldav_url = "https://sync.infomaniak.com" + caldav_user = 'SC01066' + caldav_password = "mc144*1870CLERC" + + + + def __init__(self): + self.client = caldav.DAVClient(url=self.caldav_url, username=self.caldav_user, password=self.caldav_password) + self.data = self.client.principal() + + self.m38 = self.data.calendar(name="M38") + self.m37 = self.data.calendar(name="M37") + self.clear_all_events_by_Date(self.m38) + self.add_event_in_calandar(self.m38) + self.add_event_in_calandar(self.m37) + + + def add_event_in_calandar(self, calandar): + my_event = calandar.save_event( + dtstart=datetime(2022, 6, 30, 12), + dtend=datetime(2022, 6, 30, 13), + summary="Do the needful", + ) + def clear_all_events_by_Date(self, calandar): + events = calandar.date_search(start=datetime(2022, 6, 30), end=datetime(2022, 7, 1), expand=True) + for e in events: + e.delete() + print(events) + + class _caldav_item(): key = "" name = "" @@ -105,6 +138,7 @@ class _caldav_item(): dtstamp = None done = False href = "" + uiid = "" def format_str_date(self): self.str_start_date = datetime.strptime(self.dtstart,"%d.%m.%Y %H:%M").strftime("%d.%m") diff --git a/mycaldav/views.py b/mycaldav/views.py index 072b271..a374018 100644 --- a/mycaldav/views.py +++ b/mycaldav/views.py @@ -52,24 +52,7 @@ def view_op_caldav(request): @xframe_options_exempt def view_dayly_caldav(request): ret = "" - caldav_url = "https://sync.infomaniak.com" - caldav_user = 'SC01066' - caldav_password = "mc144*1870CLERC" + myClient = cls_caldav_client() - client = cal.DAVClient(url=caldav_url, username=caldav_user, password=caldav_password) - - my_principal = client.principal() - calendars = my_principal.calendars() - if calendars: - ## Some calendar servers will include all calendars you have - ## access to in this list, and not only the calendars owned by - ## this principal. - print("your principal has %i calendars:" % len(calendars)) - ret += "your principal has %i calendars:" % len(calendars) - for c in calendars: - print(" Name: %-20s URL: %s" % (c.name, c.url)) - ret += " Name: %-20s URL: %s" % (c.name, c.url) + "
\n" - else: - print("your principal has no calendars") return HttpResponse(ret)