Google calendar
tatal21820
Messages postés
37
Statut
Membre
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous
je voudrais que mes RDV s'affiche dans l'ordre chronologique et pouvoir limiter le nombre de RDV exemple 10
start_date = dat.date()
end_date = start_date + timedelta(days=60)
URL = "https://calendar.google.com/calendar/ical/"adresse mail"/private-.............." \
"/basic.ics"
ical_string = urllib.request.urlopen(URL).read()
calendar = icalendar.Calendar.from_ical(ical_string)
events = recurring_ical_events.of(calendar).between(start_date, end_date)
for lbl in frm_agd1.winfo_children():
lbl.destroy()
for event in events:
start = event["DTSTART"].dt
non = event["SUMMARY"]
agd_tatal = Label(frm_agd1, text=non + " " + start.strftime("%A %d %b %Hh%M"), font="Arial 16", fg="WHITE",
bg="black")
agd_tatal.pack(padx=10, pady=10, anchor='w')
if not events:
agd_tatal = Label(frm_agd1, text="Aucun rendez-vous aujourdhui", font="Arial 16", fg="WHITE", bg="black")
agd_tatal.pack(padx=10, pady=10, anchor='w')
d'avance merci
L'adresse mail qui figurait en ligne 4 du code a été remplacée par "adresse mail" par la Modération CCM
A voir également:
- Google calendar
- Google maps satellite - Guide
- Google maps - Guide
- Dns google - Guide
- Google photo - Télécharger - Albums photo
- Google - Guide
1 réponse
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonjour,
moi je mettrais tous les rendez-vous dans une liste, que je trierais et puis j'afficherais les 10 plus récents.
Merci beaucoup mais comment je suis débutant et j'ai essayé entre crochet mais sa ne fonctionne pas
Si tu souhaites de l'aide pour compléter ton programme, peux-tu partager un programme complet?
un exemple:
import requests import urllib import icalendar url = "https://calendar.google.com/calendar/ical/XXXgroup.calendar.google.com/public/basic.ics" ical_string = urllib.request.urlopen(url).read() calendar = icalendar.Calendar.from_ical(ical_string) l=[] for e in calendar.walk(): if e.name == "VEVENT": l.append((e.get('DTSTART').dt,e.get("SUMMARY"))) l.sort() for i in range(10): ev=l[i] print("ev",ev[0],ev[1])ok très gros programme, je sais que sais mal codé mais y fonctionne à peu près encore quelques problème surtout celui là et une fois que tous fonctionne bien j'essairai
import locale import urllib.request from datetime import timedelta, datetime from time import strftime from tkinter import * from tkinter import Tk import feedparser import icalendar import pytz import recurring_ical_events import requests from PIL import ImageTk, Image from geopy import location locale.setlocale(locale.LC_ALL, 'fr_FR') dat = datetime.now() # .strftime('%A %d %B %Y') # dat2 = datetime.now(pytz.timezone("Europe/Paris")) INTERVAL = 300000 # Agenda INTERVAL2 = 864000 # Méteo location.latitude = 47 location.longitude = 5.15 master = Tk() # master.attributes('-fullscreen', True) # master.bind('<Escape>', lambda e: master.destroy()) master.config(background='black') master.geometry("800x800") frm_weather = LabelFrame(master, font='helvetica 20', fg='WHITE', bg='black', bd="0", relief=GROOVE) frm_weather.place(x=1220, y=20, width=700, height=400) frm_clock = LabelFrame(master, text='', font='Arial 20', fg='WHITE', bg='black', bd="0", relief=GROOVE) frm_clock.place(x=20, y=20, width=500, height=150) frm_saint = LabelFrame(master, bg='black', bd="0", relief=GROOVE) frm_saint.place(x=20, y=150, width=500, height=100) frm_agd1 = LabelFrame(master, text="Tatal " , font="helvetica 15 underline", fg="WHITE", bg="black", bd="0", width=500, relief=GROOVE) frm_agd1.place(x=20, y=250, height=800) frm_agd2 = LabelFrame(master, text="Didine " , font='helvetica 15 underline', fg='WHITE', bg='black', bd="0", width=500, relief=GROOVE) frm_agd2.place(x=20, y=450, height=800) frm_agd3 = LabelFrame(master, text="Anniverssaire " , font='helvetica 15 underline', fg='WHITE', bg='black', bd="0", relief=GROOVE) frm_agd3.place(x=20, y=620, width=500, height=800) frm_info1 = LabelFrame(master, bg='black', bd="0", height=800, relief=GROOVE) frm_info1.place(x=120, y=850, width=1650, height=100) frm_info2 = LabelFrame(master, bg='black', bd="0", height=800, relief=GROOVE) frm_info2.place(x=120, y=900, width=1650, height=100) # frm_cam = LabelFrame(master, text="Caméra", font='helvetica 15', fg='WHITE', bg='black', bd="1", relief=GROOVE) # frm_cam.place(x=500, y=100, width=700, height=400) # frm_divers = LabelFrame(master, text="Divers", font='helvetica 15', fg='WHITE', bg='black', bd="1", height=800, # relief=GROOVE) # frm_divers.place(x=1250, y=450, width=600, height=400) frm_poub = LabelFrame(master, bg='black', relief=GROOVE, width=200, height=105, bd="0") frm_poub.place(x=750, y=750) frm_desc = LabelFrame(frm_weather, bg='black', bd="0", height=800, relief=GROOVE) frm_desc.place(x=130, y=25) frm_left = LabelFrame(frm_weather, fg='WHITE', bg='black', bd="1", relief=GROOVE, width=250, height=300, border="0") frm_left.place(x=40, y=50) frm_center = LabelFrame(frm_weather, bg='black', bd="1", relief=GROOVE, width=150, height=300, border="0") frm_center.pack(side=TOP) frm_right = LabelFrame(frm_weather, fg='WHITE', bg='black', bd="0", relief=GROOVE, width=250, height=300) frm_right.place(x=510, y=50) frm_down = LabelFrame(frm_weather, bg='black', bd="0", relief=GROOVE, width=750, height=200) frm_down.place(x=50, y=200) secondframe = Frame(frm_down, width=70, height=115, bg="black", bd="1") secondframe.pack(side=LEFT) thirdframe = Frame(frm_down, width=70, height=115, bg="black") thirdframe.pack(side=LEFT) fourthframe = Frame(frm_down, width=70, height=115, bg="black") fourthframe.pack(side=LEFT) fifthframe = Frame(frm_down, width=70, height=115, bg="black") fifthframe.pack(side=LEFT) sixthframe = Frame(frm_down, width=70, height=115, bg="black") sixthframe.pack(side=LEFT) seventhframe = Frame(frm_down, width=70, height=115, bg="black") seventhframe.pack(side=LEFT) # Horloge date_aujourdhui = Label(frm_clock, text=str(dat.strftime('%A %d %B %Y')), font='Arial 25', relief=FLAT, fg='WHITE', bg='black') date_aujourdhui.place(x=10, y=10) def times(): string = strftime('%H:%M') lbl_horl.config(text=string) lbl_horl.after(1000, times) lbl_horl = Label(frm_clock, font=('calibri', 50, 'bold'), background='black', foreground='white') lbl_horl.place(x=10, y=55) def second(): string = strftime('%S') lbl_sec.config(text=string) lbl_sec.after(1000, second) lbl_sec = Label(frm_clock, font=('calibri', 35), background='black', foreground='#D5D8DC') lbl_sec.place(x=175, y=55) times() second() def task(): # Météo api = "https://api.openweathermap.org/data/2.5/onecall?lat=" + str(location.latitude) + "&lon=" + str( location.longitude) + "&lang=fr&units=metric&exclude=hourly&appid=xxxxxxxxxxxxx" json_data = requests.get(api).json() # current temp = json_data['current']['temp'] humidity = str(json_data['current']['humidity']) pressure = str(json_data['current']['pressure']) wind = json_data['current']['wind_speed'] description = str(json_data['current']['weather'][0]['description']) wind2 = wind * 3.6 # frm center for lbl in frm_center.winfo_children(): lbl.destroy() d = Label(frm_center, font="Helvetica, 15 bold", fg="white", bg="black") firstimage = Label(frm_center, bg="black") firstimage.pack(side=TOP) firstdayimage = json_data['daily'][0]['weather'][0]['icon'] photo1 = ImageTk.PhotoImage(file=f"icon/{firstdayimage}@2x.png") firstimage.config(image=photo1) firstimage.image = photo1 d.pack(side=TOP) d.config(text=description) lbl_temp = Label(frm_center, text=f"{temp:2.1f} °C", font="Helvetica, 22 bold", fg="white", bg="black") lbl_temp.pack(side=TOP) # frm_left for lbl in frm_left.winfo_children(): lbl.destroy() lbl_ville = Label(frm_left, text="labergement \n lès seurre", font="Helvetica, 20 bold", fg="white", bg="black") lbl_ville.pack(side=TOP) long_lat = Label(frm_left, font=("helvetica", 12), fg="white", bg="black") long_lat.pack(side=TOP) long_lat.config(text=f"{round(location.latitude, 4)}°N, {round(location.longitude, 4)}°E") # frm_right for lbl in frm_right.winfo_children(): lbl.destroy() lbl_humidite = Label(frm_right, text="Humidité" + " " + humidity + " " + "%", font="Helvetica, 15 bold", fg="white", bg="black") lbl_humidite.pack(side=TOP) lbl_pressure = Label(frm_right, text="Pression" + " " + pressure + " " + "hPa", font="Helvetica, 15 bold", fg="white", bg="black") lbl_pressure.pack(side=TOP) lbl_wind = Label(frm_right, text="Vent" + " " + str(f"{wind2:2.1f} KM/h"), font="Helvetica, 15 bold", fg="white", bg="black") lbl_wind.pack(side=TOP) # frm_down # j2 seconde = dat + timedelta(days=1) for lbl in secondframe.winfo_children(): lbl.destroy() day2 = Label(secondframe, bg="black", fg="white", font="arial 12 bold") day2.pack(side=TOP) day2.config(text=seconde.strftime("%A")) secondimage = Label(secondframe, bg="black") secondimage.pack(side=TOP) seconddayimage = json_data['daily'][1]['weather'][0]['icon'] img = (Image.open(f"icon/{seconddayimage}@2x.png")) resized_image = img.resize((100, 100)) photo2 = ImageTk.PhotoImage(resized_image) secondimage.config(image=photo2) secondimage.image = photo2 day2temp = Label(secondframe, bg="black", fg="white", font="arial 12 bold") day2temp.pack(side=TOP) day2tempn = Label(secondframe, bg="black", fg="#60E7F0", font="arial 12 bold") day2tempn.pack(side=TOP) tempday2 = json_data['daily'][1]['temp']['day'] tempnight2 = json_data['daily'][1]['temp']['night'] day2temp.config(text=f"{tempday2:2.1f}°C") day2tempn.config(text=f"{tempnight2:2.1f}°C") # j3 third = dat + timedelta(days=2) for lbl in thirdframe.winfo_children(): lbl.destroy() day3 = Label(thirdframe, bg="black", fg="white", font="arial 12 bold") day3.pack(side=TOP) day3.config(text=third.strftime("%A")) thirdimage = Label(thirdframe, bg="black") thirdimage.pack(side=TOP) thirddayimage = json_data['daily'][2]['weather'][0]['icon'] img = (Image.open(f"icon/{thirddayimage}@2x.png")) resized_image = img.resize((100, 100)) photo3 = ImageTk.PhotoImage(resized_image) thirdimage.config(image=photo3) thirdimage.image = photo3 day3temp = Label(thirdframe, bg="black", fg="white", font="arial 12 bold") day3temp.pack(side=TOP) day3tempn = Label(thirdframe, bg="black", fg="#60E7F0", font="arial 12 bold") day3tempn.pack(side=TOP) tempday3 = json_data['daily'][2]['temp']['day'] tempnight3 = json_data['daily'][2]['temp']['night'] day3temp.config(text=f"{tempday3:2.1f}°C") day3tempn.config(text=f"{tempnight3:2.1f}°C") # j4 fourth = dat + timedelta(days=3) for lbl in fourthframe.winfo_children(): lbl.destroy() day4 = Label(fourthframe, bg="black", fg="white", font="arial 12 bold") day4.pack(side=TOP) day4.config(text=fourth.strftime("%A")) fourthimage = Label(fourthframe, bg="black") fourthimage.pack(side=TOP) fourthdayimage = json_data['daily'][3]['weather'][0]['icon'] img = (Image.open(f"icon/{fourthdayimage}@2x.png")) resized_image = img.resize((100, 100)) photo4 = ImageTk.PhotoImage(resized_image) fourthimage.config(image=photo4) fourthimage.image = photo4 day4temp = Label(fourthframe, bg="black", fg="white", font="arial 12 bold") day4temp.pack(side=TOP) day4tempn = Label(fourthframe, bg="black", fg="#60E7F0", font="arial 12 bold") day4tempn.pack(side=TOP) tempday4 = json_data['daily'][3]['temp']['day'] tempnight4 = json_data['daily'][3]['temp']['night'] day4temp.config(text=f"{tempday4:2.1f}°C") day4tempn.config(text=f"{tempnight4:2.1f}°C") # j5 fifth = dat + timedelta(days=4) for lbl in fifthframe.winfo_children(): lbl.destroy() day5 = Label(fifthframe, bg="black", fg="white", font="arial 12 bold") day5.pack(side=TOP) day5.config(text=fifth.strftime("%A")) fifthimage = Label(fifthframe, bg="black") fifthimage.pack(side=TOP) fifthdayimage = json_data['daily'][4]['weather'][0]['icon'] img = (Image.open(f"icon/{fifthdayimage}@2x.png")) resized_image = img.resize((100, 100)) photo5 = ImageTk.PhotoImage(resized_image) fifthimage.config(image=photo5) fifthimage.image = photo5 day5temp = Label(fifthframe, bg="black", fg="white", font="arial 12 bold") day5temp.pack(side=TOP) day5tempn = Label(fifthframe, bg="black", fg="#60E7F0", font="arial 12 bold") day5tempn.pack(side=TOP) tempday5 = json_data['daily'][4]['temp']['day'] tempnight5 = json_data['daily'][4]['temp']['night'] day5temp.config(text=f"{tempday5:2.1f}°C") day5tempn.config(text=f"{tempnight5:2.1f}°C") # j6 sixth = dat + timedelta(days=5) for lbl in sixthframe.winfo_children(): lbl.destroy() day6 = Label(sixthframe, bg="black", fg="white", font="arial 12 bold") day6.pack(side=TOP) day6.config(text=sixth.strftime("%A")) sixthimage = Label(sixthframe, bg="black") sixthimage.pack(side=TOP) sixthdayimage = json_data['daily'][5]['weather'][0]['icon'] img = (Image.open(f"icon/{sixthdayimage}@2x.png")) resized_image = img.resize((100, 100)) photo6 = ImageTk.PhotoImage(resized_image) sixthimage.config(image=photo6) sixthimage.image = photo6 day6temp = Label(sixthframe, bg="black", fg="white", font="arial 12 bold") day6temp.pack(side=TOP) day6tempn = Label(sixthframe, bg="black", fg="#60E7F0", font="arial 12 bold") day6tempn.pack(side=TOP) tempday6 = json_data['daily'][5]['temp']['day'] tempnight6 = json_data['daily'][5]['temp']['night'] day6temp.config(text=f"{tempday6:2.1f}°C") day6tempn.config(text=f"{tempnight6:2.1f}°C") # j7 seventh = dat + timedelta(days=6) for lbl in seventhframe.winfo_children(): lbl.destroy() day7 = Label(seventhframe, bg="black", fg="white", font="arial 12 bold") day7.pack(side=TOP) day7.config(text=seventh.strftime("%A")) seventhimage = Label(seventhframe, bg="black") seventhimage.pack(side=TOP) seventhdayimage = json_data['daily'][6]['weather'][0]['icon'] img = (Image.open(f"icon/{seventhdayimage}@2x.png")) resized_image = img.resize((100, 100)) photo7 = ImageTk.PhotoImage(resized_image) seventhimage.config(image=photo7) seventhimage.image = photo7 day7temp = Label(seventhframe, bg="black", fg="white", font="arial 12 bold") day7temp.pack(side=TOP) day7tempn = Label(seventhframe, bg="black", fg="#60E7F0", font="arial 12 bold") day7tempn.pack(side=TOP) tempday7 = json_data['daily'][6]['temp']['day'] tempnight7 = json_data['daily'][6]['temp']['night'] day7temp.config(text=f"{tempday7:2.1f}°C") day7tempn.config(text=f"{tempnight7:2.1f}°C") master.after(INTERVAL2, task) def task2(): # Saint du jour start_date = dat.date() end_date = start_date + timedelta(days=1) URL = "https://calendar.google.com/calendar/ical/"Adresse mail N°1"/private-xxxxxxxx" \ "/basic.ics " ical_string = urllib.request.urlopen(URL).read() calendar = icalendar.Calendar.from_ical(ical_string) events = recurring_ical_events.of(calendar).between(start_date, end_date) for lbl in frm_saint.winfo_children(): lbl.destroy() for event in events: non = event["SUMMARY"] agd_saint = Label(frm_saint, text="St(e)" + non, font="Arial 26", fg="WHITE", bg="black") agd_saint.place(x=10, y=10) # Agenda1 Tatal start_date = dat.date() end_date = start_date + timedelta(days=60) URL = "https://calendar.google.com/calendar/ical/"Adresse mail N°2"/private-xxxxxxxxxx" \ "/basic.ics" ical_string = urllib.request.urlopen(URL).read() calendar = icalendar.Calendar.from_ical(ical_string) events = recurring_ical_events.of(calendar).between(start_date, end_date) for lbl in frm_agd1.winfo_children(): lbl.destroy() for event in events: start = event["DTSTART"].dt non = event["SUMMARY"] agd_tatal = Label(frm_agd1, text=non + " " + start.strftime("%A %d %b %Hh%M"), font="Arial 16", fg="WHITE", bg="black") agd_tatal.pack(padx=10, pady=10, anchor='w') if not events: agd_tatal = Label(frm_agd1, text="Aucun rendez-vous aujourdhui", font="Arial 16", fg="WHITE", bg="black") agd_tatal.pack(padx=10, pady=10, anchor='w') # agenda2 Didine start_date = dat.date() end_date = start_date + timedelta(days=60) URL = "https://calendar.google.com/calendar/ical/"Adresse mail N°3"/private-xxxxxxxxxx" \ "/basic.ics " ical_string = urllib.request.urlopen(URL).read() calendar = icalendar.Calendar.from_ical(ical_string) events = recurring_ical_events.of(calendar).between(start_date, end_date) for lbl in frm_agd2.winfo_children(): lbl.destroy() for event in events: start = event["DTSTART"].dt non = event["SUMMARY"] agd_didine = Label(frm_agd2, text=non + " " + start.strftime("%A %d %b %Hh%M"), font="Arial 16", fg="WHITE", bg="black") agd_didine.pack(padx=10, pady=10, anchor='w') if not events: agd_didine = Label(frm_agd2, text="Aucun rendez-vous aujourdhui", font="Arial 16", fg="WHITE", bg="black") agd_didine.pack(padx=10, pady=10, anchor='w') # Anniverssaire start_date = dat.date() end_date = start_date + timedelta(days=15) URL = "https://calendar.google.com/calendar/ical/"Adresse mail N°4"/private" \ "xxxxxxxxxxxxxxxxx " ical_string = urllib.request.urlopen(URL).read() calendar = icalendar.Calendar.from_ical(ical_string) events = recurring_ical_events.of(calendar).between(start_date, end_date) for lbl in frm_agd3.winfo_children(): lbl.destroy() for event in events: start = event["DTSTART"].dt non = event["SUMMARY"] agd_anni = Label(frm_agd3, text=non + " " + start.strftime("%A %d %B"), font="Arial 16", fg="WHITE", bg="black") agd_anni.pack(ipadx=20, pady=10, anchor='w') # Poubelles start_date = dat.date() end_date = start_date + timedelta(days=3) URL = "https://calendar.google.com/calendar/ical/xxxxxxxxx/public/basic.ics" ical_string = urllib.request.urlopen(URL).read() calendar = icalendar.Calendar.from_ical(ical_string) events = recurring_ical_events.of(calendar).between(start_date, end_date) for lbl in frm_poub.winfo_children(): lbl.destroy() for event in events: start = event["DTSTART"].dt non = event["SUMMARY"] agd_poub = Label(frm_poub, text=non + " " + start.strftime("%A"), font="Arial 16", fg="WHITE", bg="black") agd_poub.pack(ipadx=20, pady=10) master.after(INTERVAL, task2) # info1 feed = feedparser.parse("https://www.bienpublic.com/edition-beaune/rss").entries def aff(inpho, pheed, n): inpho.config(text=pheed[n].title) if n + 1 < len(pheed): n += 1 else: pheed = feedparser.parse("https://www.bienpublic.com/edition-beaune/rss").entries n = 0 info.after(8000, aff, inpho, pheed, n) info = Label(frm_info1, font='Arial 16', fg='WHITE', bg='black') info.pack(padx=10, pady=10) aff(info, feed, 0) # Info2 feed = feedparser.parse("http://www.france24.com/fr/france/rss").entries def aff(inpho, pheed, n): inpho.config(text=pheed[n].title) if n + 1 < len(pheed): n += 1 else: pheed = feedparser.parse("http://www.france24.com/fr/france/rss").entries n = 0 info.after(8000, aff, inpho, pheed, n) info = Label(frm_info2, font='Arial 16', fg='WHITE', bg='black') info.pack(padx=10, pady=10) aff(info, feed, 0) # Météo 5 jours # https://api.openweathermap.org/data/2.5/forecast?q=Seurre%2Cfr%2C&appid=315fa7e430e072d9d8a06a66fe731d13&cnt=5 master.after(0, task) master.after(0, task2) master.mainloop()de l'améliorer avec des class ou autre.
Merci pour ton aide
j'ai essayé ton programme et il m'affiche un message d'erreur
Traceback (most recent call last):
File "C:\Users\tatal\PycharmProjects\essais\SmartMirror.py", line 25, in <module>
l.sort()
TypeError: can't compare datetime.datetime to datetime.date