Untitled

 avatar
unknown
plain_text
7 days ago
2.0 kB
3
Indexable
from icalendar import Calendar, Event
from datetime import datetime
import pytz

# Define timezone
tz = pytz.timezone("America/New_York")

# Create a calendar
cal = Calendar()
cal.add("prodid", "-//Econ 101 Schedule//EN")
cal.add("version", "2.0")

# Define events based on the syllabus
events = [
    ("Introduction", "2025-01-21", "08:30", "Academic West 108"),
    ("Problem Set 1 Due", "2025-01-30", "08:30", "Academic West 108"),
    ("Exam 1", "2025-02-26", "19:00", "Academic West 116"),
    ("Problem Set 2 Due", "2025-02-06", "08:30", "Academic West 108"),
    ("Problem Set 3 Due", "2025-02-13", "08:30", "Academic West 108"),
    ("Problem Set 4 Due", "2025-02-20", "08:30", "Academic West 108"),
    ("Problem Set 5 Due", "2025-03-06", "08:30", "Academic West 108"),
    ("Problem Set 6 Due", "2025-03-20", "08:30", "Academic West 108"),
    ("Problem Set 7 Due", "2025-03-27", "08:30", "Academic West 108"),
    ("Problem Set 8 Due", "2025-04-03", "08:30", "Academic West 108"),
    ("Test 2", "2025-04-09", "19:00", "Academic West 116"),
    ("Problem Set 9 Due", "2025-04-17", "08:30", "Academic West 108"),
    ("Problem Set 10 Due", "2025-04-24", "08:30", "Academic West 108"),
    ("In-Class Quiz (Counts as Problem Set 11)", "2025-04-29", "08:30", "Academic West 108"),
    ("Final Exam", "2025-05-01", "08:30", "Academic West 108"),
]

# Add events to the calendar
for name, date, time, location in events:
    event = Event()
    event.add("summary", name)
    event.add("dtstart", tz.localize(datetime.strptime(f"{date} {time}", "%Y-%m-%d %H:%M")))
    event.add("dtend", tz.localize(datetime.strptime(f"{date} {time}", "%Y-%m-%d %H:%M")))
    event.add("location", location)
    event.add("description", f"{name} at {location}")
    cal.add_component(event)

# Save to file
ics_file_path = "/mnt/data/Econ101_Spring2025.ics"
with open(ics_file_path, "wb") as f:
    f.write(cal.to_ical())

# Provide file for download
ics_file_path
Leave a Comment