from google.oauth2.credentials import Credentials from googleapiclient.discovery import build import json cal_id = "fd0c7cf8ec9fc8fc1d8a9811c439717f6246e2e53ee9fe2046c720b29242fc4e@group.calendar.google.com" token_file = "/root/.hermes/google_token.json" with open(token_file) as f: token_data = json.load(f) service = build("calendar", "v3", credentials=Credentials.from_authorized_user_info(token_data)) # 1. Update 12 Macro sessions macro_sessions_update = { "t0echpnqd06fppsn6ivqovug8c": { "summary": "[FSPPM PA] Macro: Hạch toán nền kinh tế (Online)", "colorId": "9", "location": "Online", "description": "Bài giảng 1: Hạch toán nền kinh tế\nThời gian: 18:00 đến 19:30\nHình thức: Trực tuyến (Online)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh\nBài đọc bắt buộc: Mankiw (2019), Chương 1, 2 và 3; Moss (2014), Chương 1; Đỗ Thiên Anh Tuấn (2025), Khoảng cách giữa GDP và thu nhập." }, "l8rgogumja4l6itvqrhlnbd0u0": { "summary": "[FSPPM PA] Macro: Các chỉ báo kinh tế vĩ mô chính (Online)", "colorId": "9", "location": "Online", "description": "Bài giảng 2: Các chỉ báo kinh tế vĩ mô chính\nThời gian: 18:00 đến 19:30\nHình thức: Trực tuyến (Online)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh\nBài đọc bắt buộc: Mankiw (2019), Chương 2 và 3; Blanchard (2017), Chương 2; OECD (2017), Green Growth Indicators 2017." }, "e072hhps2mvp8f33tkv1ib2qlo": { "summary": "[FSPPM PA] Macro: Thị trường hàng hóa và Chính sách tài khóa", "colorId": "5", "location": "FSPPM, Fulbright University Vietnam", "description": "Buổi 3: Thị trường hàng hóa và Chính sách tài khóa\nCa 1 (13:30 đến 15:00): Bài giảng 3: Thị trường hàng hóa và khu vực sản xuất\nCa 2 (15:15 đến 16:45): Bài giảng 4: Chính sách tài khóa\nHình thức: Tập trung tại trường (Fulbright)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh\nBài đọc bắt buộc: Mankiw (2019), Chương 3, 16 và 17; Blanchard (2017), Chương 3; Krugman & Wells (2018), Chương 13." }, "pq70lhmkgqpul4i57en3g7go60": { "summary": "[FSPPM PA] Macro: Thị trường tiền tệ và Chính sách tiền tệ", "colorId": "5", "location": "FSPPM, Fulbright University Vietnam", "description": "Buổi 4: Thị trường tiền tệ và Chính sách tiền tệ\nCa 1 (13:30 đến 15:00): Bài giảng 5: Thị trường tiền tệ và hệ thống tài chính\nCa 2 (15:15 đến 16:45): Bài giảng 6: Ngân hàng trung ương và chính sách tiền tệ\nHình thức: Tập trung tại trường (Fulbright)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh\nBài đọc bắt buộc: Mankiw (2019), Chương 4 và 18; Krugman & Wells (2018), Chương 14 và 15; Đỗ Thiên Anh Tuấn (2022), Mô hình khủng hoảng ngân hàng Diamond và Dybvig.\nLưu ý quan trọng: Hạn nộp Bài tập 1 trước 08:20 sáng nay." }, "bb4cah5323vc5acr21ioavo5f0": { "summary": "[FSPPM PA] Macro: Lạm phát, thất nghiệp và Mô hình IS LM", "colorId": "5", "location": "FSPPM, Fulbright University Vietnam", "description": "Buổi 5: Lạm phát, thất nghiệp và Mô hình IS LM\nCa 1 (13:30 đến 15:00): Bài giảng 7: Lạm phát, tăng trưởng, thất nghiệp: đường Phillips và định luật Okun\nCa 2 (15:15 đến 16:45): Bài giảng 8: Cân bằng thị trường hàng hóa và tiền tệ: Mô hình IS LM\nHình thức: Tập trung tại trường (Fulbright)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh\nBài đọc bắt buộc: Mankiw (2019), Chương 11, 12 và 14; Blanchard (2017), Chương 5, 6 và 8." }, "5bbpem07qk9vk3j1ajlhkv2uog": { "summary": "[FSPPM PA] Macro: Mô hình AS AD và Phối hợp chính sách", "colorId": "5", "location": "FSPPM, Fulbright University Vietnam", "description": "Buổi 6: Mô hình AS AD và Phối hợp chính sách tài khóa, tiền tệ\nCa 1 (13:30 đến 15:00): Bài giảng 9: Cân bằng tất cả các thị trường: Mô hình AS AD\nCa 2 (15:15 đến 16:45): Bài giảng 10: Phối hợp chính sách tài khóa và chính sách tiền tệ\nHình thức: Tập trung tại trường (Fulbright)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh\nBài đọc bắt buộc: Mankiw (2019), Chương 10, 11, 12 và 13; Krugman & Wells (2018), Chương 12; Worrell (2000), Monetary and Fiscal Coordination.\nLưu ý quan trọng: Hạn nộp Bài tập 2 trước 08:20 sáng nay." }, "lc7v7caccio43unjpinik26ob8": { "summary": "[FSPPM PA] Macro: Ôn tập và Kiểm tra giữa kỳ", "colorId": "5", "location": "FSPPM, Fulbright University Vietnam", "end": {"dateTime": "2026-11-18T17:00:00+07:00"}, "description": "Buổi 7: Ôn tập và Kiểm tra giữa kỳ\nCa 1 (13:30 đến 15:00): Ôn tập Phần I và Phần II\nCa 2 (15:30 đến 17:00): Bài kiểm tra giữa kỳ (Midterm Exam chiếm 20% tổng điểm)\nHình thức: Tập trung tại trường (Fulbright)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh." }, "i587hnrobvmffkklro6m8rmp58": { "summary": "[FSPPM PA] Macro: Cán cân thanh toán và Ngang bằng sức mua", "colorId": "5", "location": "FSPPM, Fulbright University Vietnam", "description": "Buổi 8: Nền kinh tế mở, thương mại và dòng vốn\nCa 1 (13:30 đến 15:00): Bài giảng 11: Hạch toán cán cân thanh toán (BOP)\nCa 2 (15:15 đến 16:45): Bài giảng 12: Cán cân thương mại và ngang bằng sức mua (PPP)\nHình thức: Tập trung tại trường (Fulbright)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh\nBài đọc bắt buộc: Mankiw (2019), Chương 6; Moss (2014), Chương 6 và 7; Krugman et al. (2015), Chương 13 và 16." }, "os27jk2fenqjsicm80cnv8kc10": { "summary": "[FSPPM PA] Macro: Dòng vốn và Mô hình Mundell Fleming", "colorId": "5", "location": "FSPPM, Fulbright University Vietnam", "description": "Buổi 9: Dòng vốn và Mô hình Mundell Fleming\nCa 1 (13:30 đến 15:00): Bài giảng 13: Dòng vốn và ngang bằng lãi suất (IRP)\nCa 2 (15:15 đến 16:45): Bài giảng 14: Bộ ba bất khả thi và chính sách vô hiệu hóa: mô hình Mundell Fleming\nHình thức: Tập trung tại trường (Fulbright)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh\nBài đọc bắt buộc: Mankiw (2019), Chương 13; Krugman et al. (2015), Chương 15 và 18; Ocampo et al. (2009), Chương 5 đến 7." }, "g51daffkslgo5nt2oes8dir40g": { "summary": "[FSPPM PA] Macro: Ôn tập Phần III", "colorId": "5", "location": "FSPPM, Fulbright University Vietnam", "description": "Buổi 10: Ôn tập Phần III\nThời gian: 10:15 đến 11:45\nBài giảng 15: Ôn tập Phần III: Nền kinh tế mở và tác động của thương mại, dòng vốn\nHình thức: Tập trung tại trường (Fulbright)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh\nLưu ý quan trọng: Hạn nộp Bài tập 3 trước 08:20 sáng nay." }, "jt58ma98pqf13nn8j6o4es560k": { "summary": "[FSPPM PA] Macro: Tăng trưởng tân cổ điển và Tăng trưởng nội sinh (Hybrid)", "colorId": "7", "location": "FSPPM / Hybrid", "description": "Buổi 11: Nền kinh tế trong dài hạn\nCa 1 (13:30 đến 15:00): Bài giảng 16: Mô hình tăng trưởng tân cổ điển: Vai trò tích lũy vốn\nCa 2 (15:15 đến 16:45): Bài giảng 17: Mô hình tăng trưởng nội sinh: Vai trò của tiến bộ công nghệ\nHình thức: Kết hợp Trực tiếp và Trực tuyến (Hybrid)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh\nBài đọc bắt buộc: Mankiw (2019), Chương 8 và 9; Blanchard (2017), Chương 10, 11, 12 và 13; Palma & Pincus (2024); Đỗ Thiên Anh Tuấn (2025)." }, "tog5bgnl5v5fhthacmla8b3mhg": { "summary": "[FSPPM PA] Macro: Phân tích kinh tế thế giới, VN và Ôn tập cuối môn (Hybrid)", "colorId": "7", "location": "FSPPM / Hybrid", "description": "Buổi 12: Kinh tế Thế giới, Việt Nam và Ôn tập cuối môn\nCa 1 (13:30 đến 15:00): Bài giảng 18: Phân tích kinh tế thế giới và Việt Nam\nCa 2 (15:15 đến 16:45): Bài giảng 19: Ôn tập cuối môn\nHình thức: Kết hợp Trực tiếp và Trực tuyến (Hybrid)\nGiảng viên: Đỗ Thiên Anh Tuấn và Lê Hồng Giang\nTrợ giảng: Vũ Thúy Vinh\nBài đọc bắt buộc: IMF (2026), World Economic Outlook; Chính phủ Việt Nam (2026), Báo cáo KTXH; Đỗ Thiên Anh Tuấn (2025, 2026).\nLưu ý quan trọng: Hạn nộp Bài tập 4 trước 08:20 sáng nay." } } for eid, patch_data in macro_sessions_update.items(): print(f"Updating session {eid}...") res = service.events().patch(calendarId=cal_id, eventId=eid, body=patch_data).execute() print(f" ✓ Updated: {res.get('summary')} (Color: {res.get('colorId')})") # 2. Insert 4 Deadlines (Color ID: 11 - Tomato) deadlines = [ { "summary": "[DEADLINE] Macro: Nộp Bài tập 1 (08:20)", "colorId": "11", "start": {"dateTime": "2026-11-15T08:00:00+07:00"}, "end": {"dateTime": "2026-11-15T08:20:00+07:00"}, "description": "Hạn chót nộp Bài tập 1 môn Kinh tế học vĩ mô (MPP 512).\nThời hạn quy định: Nộp trước 08:20 sáng ngày 15/11/2026.\nQuy định: Bài tập chiếm 20% tổng điểm môn học. Nộp trễ nhận điểm 0 cho toàn bài nhưng vẫn phải nộp trong vòng 24 giờ." }, { "summary": "[DEADLINE] Macro: Nộp Bài tập 2 (08:20)", "colorId": "11", "start": {"dateTime": "2026-11-17T08:00:00+07:00"}, "end": {"dateTime": "2026-11-17T08:20:00+07:00"}, "description": "Hạn chót nộp Bài tập 2 môn Kinh tế học vĩ mô (MPP 512).\nThời hạn quy định: Nộp trước 08:20 sáng ngày 17/11/2026.\nQuy định: Bài tập chiếm 20% tổng điểm môn học. Nộp trễ nhận điểm 0 cho toàn bài nhưng vẫn phải nộp trong vòng 24 giờ." }, { "summary": "[DEADLINE] Macro: Nộp Bài tập 3 (08:20)", "colorId": "11", "start": {"dateTime": "2026-11-22T08:00:00+07:00"}, "end": {"dateTime": "2026-11-22T08:20:00+07:00"}, "description": "Hạn chót nộp Bài tập 3 môn Kinh tế học vĩ mô (MPP 512).\nThời hạn quy định: Nộp trước 08:20 sáng ngày 22/11/2026.\nQuy định: Bài tập chiếm 20% tổng điểm môn học. Nộp trễ nhận điểm 0 cho toàn bài nhưng vẫn phải nộp trong vòng 24 giờ." }, { "summary": "[DEADLINE] Macro: Nộp Bài tập 4 (08:20)", "colorId": "11", "start": {"dateTime": "2026-11-29T08:00:00+07:00"}, "end": {"dateTime": "2026-11-29T08:20:00+07:00"}, "description": "Hạn chót nộp Bài tập 4 môn Kinh tế học vĩ mô (MPP 512).\nThời hạn quy định: Nộp trước 08:20 sáng ngày 29/11/2026.\nQuy định: Bài tập chiếm 20% tổng điểm môn học. Nộp trễ nhận điểm 0 cho toàn bài nhưng vẫn phải nộp trong vòng 24 giờ." } ] for d in deadlines: print(f"Creating deadline {d['summary']}...") res = service.events().insert(calendarId=cal_id, body=d).execute() print(f" ✓ Created: {res.get('summary')} (ID: {res.get('id')})") print("\nSuccessfully enriched Macroeconomics schedule and deadlines!")