Files
baikal-sync/delete_calendar.py

58 lines
1.7 KiB
Python

import caldav
from sync_calendar import BAIKAL_URL, BAIKAL_USER, BAIKAL_PASS, HEADERS
def delete_all_events():
print("-> Conectando a Baïkal...")
try:
client = caldav.DAVClient(
url=BAIKAL_URL,
username=BAIKAL_USER,
password=BAIKAL_PASS,
headers=HEADERS,
ssl_verify_cert=True
)
principal = client.principal()
calendars = principal.calendars()
if not calendars:
print("!!! No se encontró ningún calendario.")
return
calendar = calendars[0]
print(f"-> Calendario encontrado: {calendar}")
print("-> Buscando eventos...")
events = calendar.events()
total_events = len(events)
if total_events == 0:
print("-> El calendario ya está vacío.")
return
print(f"-> ¡ADVERTENCIA! Se han encontrado {total_events} eventos.")
confirm = input(f"¿Estás SEGURO de que quieres BORRAR TODOS los {total_events} eventos? (s/n): ")
if confirm.lower() != 's':
print("-> Operación cancelada.")
return
print("-> Borrando eventos...")
deleted_count = 0
for i, event in enumerate(events, 1):
try:
event.delete()
deleted_count += 1
if i % 50 == 0:
print(f" Borrados {i}/{total_events}")
except Exception as e:
print(f"!!! Error borrando evento {event}: {e}")
print(f"-> ¡Limpieza completada! Se han borrado {deleted_count} eventos.")
except Exception as e:
print(f"!!! Error: {e}")
if __name__ == "__main__":
delete_all_events()