Skip to content

Instantly share code, notes, and snippets.

@sielicki
Last active December 21, 2018 09:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sielicki/9c1639da8d5142d98762fe55f89d8677 to your computer and use it in GitHub Desktop.
Save sielicki/9c1639da8d5142d98762fe55f89d8677 to your computer and use it in GitHub Desktop.
{"last_check":"2018-06-08T00:22:24Z","pypi_version":"10.0.1"}
home = /usr/bin
include-system-site-packages = false
version = 3.6.5
arrow==0.4.2
cssselect==1.0.3
ics==0.4
lxml==4.2.5
pkg-resources==0.0.0
python-dateutil==2.7.3
six==1.11.0
#!/usr/bin/env python3
import urllib.request, ics, lxml.etree, arrow
from lxml.cssselect import CSSSelector
from dateutil import parser
def gencal():
url = "https://registrar.wisc.edu/dates/"
sel = CSSSelector(".tribe-event-date-start , .tribe-events-list-event-title")
htmlparser = lxml.etree.HTMLParser()
response = urllib.request.urlopen(url)
print("Grabbed calendar from: {}".format(url))
tree = lxml.etree.parse(response, htmlparser)
selected = sel(tree)
tuples = zip(*[iter(selected)] * 2)
cal = ics.Calendar()
print("Parsing events")
for tup in tuples:
name, date = tup
new_event = ics.Event()
new_event.name = name.text
new_event.begin = arrow.get(parser.parse(date.text))
new_event.make_all_day()
cal.events.add(new_event)
print("Found {} events".format(len(cal.events)))
print("Writing calendar to uwmadison.ics")
with open('uwmadison.ics', 'w') as output:
output.writelines(cal)
print("Wrote calendar to uwmadison.ics")
if __name__ == '__main__':
gencal()
BEGIN:VCALENDAR
PRODID:ics.py - http://git.io/lLljaA
VERSION:2.0
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181212
SUMMARY:Last Fall 2018 class day
TRANSP:OPAQUE
UID:8985af56-f5a4-4830-8e28-61f5699cf520@8985.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190201
SUMMARY:Deadline for students to add\, swap\, or change sections in a Spring term class (after: need department permission)
TRANSP:OPAQUE
UID:4eef7914-538f-41c9-9ab0-368b54a0d973@4eef.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190215
SUMMARY:Deadline for students (except Graduate) to request pass/fail or credit/audit options for a Spring term class
TRANSP:OPAQUE
UID:eb93f232-f748-47e6-8240-c3ee497ee7b7@eb93.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20180905
SUMMARY:Instruction for Fall 2018 begins
TRANSP:OPAQUE
UID:be398bf1-9449-4fec-b555-2b6d2fb65d0e@be39.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190313
SUMMARY:Schedule of Classes released for Fall 2019
TRANSP:OPAQUE
UID:913e8ad1-c95a-4a65-b435-583b1ab0a688@913e.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20180914
SUMMARY:Deadline for students to add\, swap\, or change sections in a Fall term class (after: need department permission)
TRANSP:OPAQUE
UID:46e7a6db-cb9f-4418-b28e-9204a5be2e89@46e7.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20180912
SUMMARY:Deadline for students to drop a Fall term class and have no record of it on transcript (after: will show as DR)
TRANSP:OPAQUE
UID:6ecf6a9d-7dde-45a6-b32d-021b1f053bba@6ecf.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20180928
SUMMARY:Deadline for students (except Graduate) to request pass/fail or credit/audit options for a Fall term class
TRANSP:OPAQUE
UID:50ef068c-caa7-4f3b-8498-04fff08bfaca@50ef.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190122
SUMMARY:Instruction for Spring 2019 begins
TRANSP:OPAQUE
UID:d5e340c3-5457-46df-9ddd-efadcad944e6@d5e3.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181112
SUMMARY:Students begin enrolling for Spring term classes according to their appointment times
TRANSP:OPAQUE
UID:11410499-d493-405c-b7b9-9bef04860962@1141.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190130
SUMMARY:Deadline for students to drop a Spring term class and have no record of it on transcript (after: will show as DR)
TRANSP:OPAQUE
UID:83a27907-c267-4002-a5c1-b461a0dcb202@83a2.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190329
SUMMARY:Deadline for students to add a Spring term class with department permission (after: need academic dean approval)
TRANSP:OPAQUE
UID:475fddb9-2704-495d-9be2-a1ddd96172d9@475f.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190516
SUMMARY:Deadline for instructors to submit Spring term final grades by 11:59 pm
TRANSP:OPAQUE
UID:61ab3e84-51bc-447a-af77-2c4d50346385@61ab.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190325
SUMMARY:Enrollment appointment times for Summer term assigned to students this week
TRANSP:OPAQUE
UID:06dfd8c2-c562-4667-8d6b-0c5b418177c7@06df.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190512
SUMMARY:Official degree conferral date on diploma for students graduating at the end of Spring term 2019
TRANSP:OPAQUE
UID:59bcdab6-ed22-4434-b13b-30f33cbfeb41@59bc.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190503
SUMMARY:Last Spring 2019 class day
TRANSP:OPAQUE
UID:f4e94327-bbb9-490e-b8e5-b1732ed689e5@f4e9.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181102
SUMMARY:Deadline for students to add a Fall term class with department permission (after: need academic dean approval)
TRANSP:OPAQUE
UID:15bd823c-0945-4fc9-8b2c-178d48fd032f@15bd.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20180904
SUMMARY:Deadline for students to cancel Fall enrollment and have no Fall term record on transcript
TRANSP:OPAQUE
UID:3a7b3043-1822-4750-816f-5a371501b2a7@3a7b.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190201
SUMMARY:Deadline for students to drop a Spring term class and receive 100% tuition adjustment
TRANSP:OPAQUE
UID:a639b807-6358-4c53-aba1-9742436aaab2@a639.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190215
SUMMARY:Deadline for students to drop a Spring term class and receive 50% tuition adjustment
TRANSP:OPAQUE
UID:25288b4e-a29c-4c9d-9a3e-90dc28f2d970@2528.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190329
SUMMARY:Deadline for Graduate students to request pass/fail or credit/audit options for a Spring term class
TRANSP:OPAQUE
UID:8b1bdac3-f322-4650-8ea1-00e36072ac02@8b1b.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20180928
SUMMARY:Deadline for students to drop a Fall term class and receive 50% tuition adjustment
TRANSP:OPAQUE
UID:6c81beac-3395-43d1-a3e6-80687c64d1cc@6c81.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190401
SUMMARY:Students begin enrolling for Summer term classes according to their appointment times
TRANSP:OPAQUE
UID:8586a5c4-4079-4081-ba10-86d16faf1683@8586.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181223
SUMMARY:Official degree conferral date on diploma for students graduating at the end of Fall term 2018
TRANSP:OPAQUE
UID:8e38096d-5408-4899-bcd6-1a19d453c29c@8e38.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20180914
SUMMARY:Deadline for students to begin initial Fall enrollment (after: $50 late fee\, need dept. & academic dean permission)
TRANSP:OPAQUE
UID:6d8e354a-8ea0-4022-9509-87dafb42a726@6d8e.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190215
SUMMARY:Deadline for students (except Graduate) to change variable credits (after: need instructor permission & dean approval)
TRANSP:OPAQUE
UID:d683bef3-fa8c-4b49-b90b-03151d60e7ab@d683.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181212
SUMMARY:Deadline for Graduate students to withdraw from the Fall term
TRANSP:OPAQUE
UID:a700bfcd-a943-4ffb-9a12-8b67b8c1de14@a700.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181102
SUMMARY:Deadline for Graduate students to drop a Fall term class (after: need instructor\, advisor\, & academic dean approval)
TRANSP:OPAQUE
UID:fda723fe-91dd-4ccd-bd8e-8c6466eb5561@fda7.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190125
SUMMARY:Deadline for students (except Special and Guest) to begin initial Spring term enrollment without $50 late fee
TRANSP:OPAQUE
UID:729b2982-146e-4c86-b9e3-2b34f0e1b620@729b.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181123
SUMMARY:Deadline for students to change Honors Optional class status (after: need instructor permission & academic dean approval)
TRANSP:OPAQUE
UID:a980acff-8351-48a7-b7f7-3bc33852fbf7@a980.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190503
SUMMARY:Deadline for Graduate students to withdraw from the Spring term
TRANSP:OPAQUE
UID:ef9bce29-f8a5-46c7-a8a7-5ec07723a6cf@ef9b.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20180914
SUMMARY:Deadline for students to drop a Fall term class and receive 100% tuition adjustment
TRANSP:OPAQUE
UID:38aacc15-8dfe-4936-99aa-5505556b98e0@38aa.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190121
SUMMARY:Deadline for students to cancel Spring enrollment and have no Spring term record on transcript
TRANSP:OPAQUE
UID:3e776949-ebf7-4a58-b6ff-9156f0e3a72c@3e77.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181102
SUMMARY:Deadline for Graduate students to change variable credits (after: need instructor permission & dean approval)
TRANSP:OPAQUE
UID:153363cc-2430-4dc9-8d31-b4c91c270913@1533.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190401
SUMMARY:Enrollment appointment times for Fall term assigned to students this week
TRANSP:OPAQUE
UID:430d4e22-1fc9-49cf-bdf7-f46eb78a8973@430d.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20180907
SUMMARY:Deadline for students (except Special and Guest) to begin initial Fall term enrollment without $50 late fee
TRANSP:OPAQUE
UID:7e74e85a-8ca5-4c75-aa04-787fd2fab704@7e74.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181226
SUMMARY:Deadline for instructors to submit Fall term final grades by 11:59 pm
TRANSP:OPAQUE
UID:e6806be5-c16a-4a55-bbb0-d362430ed981@e680.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190329
SUMMARY:Deadline for Graduate students to drop a Spring term class (after: need instructor\, advisor\, & academic dean approval)
TRANSP:OPAQUE
UID:64913c59-045a-4898-9e86-5469fa59a9eb@6491.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181123
SUMMARY:Deadline for students (except Graduate) to withdraw from Fall term
TRANSP:OPAQUE
UID:319d6e9a-67ef-4e0a-aa38-93333dd3e77e@319d.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190329
SUMMARY:Deadline for students (except Graduate) to drop a Spring term class (after: need academic dean approval)
TRANSP:OPAQUE
UID:af4a7339-212c-4a38-a215-63f8ead1652e@af4a.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190329
SUMMARY:Deadline for Graduate students to change variable credits (after: need instructor permission & dean approval)
TRANSP:OPAQUE
UID:e497b7fc-0b06-42c8-99a3-c7e60f81ba39@e497.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20180928
SUMMARY:Deadline for students (except Graduate) to change variable credits (after: need instructor permission & dean approval)
TRANSP:OPAQUE
UID:29d78f13-a072-450f-bf31-c47bb8f8cf47@29d7.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190419
SUMMARY:Deadline for students (except Graduate) to withdraw from Spring term
TRANSP:OPAQUE
UID:1ae337ce-9bad-4530-8ef8-88beed0c695b@1ae3.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20180723
SUMMARY:Preferred date for students enrolled in a class with an eText textbook to request opting out of purchase
TRANSP:OPAQUE
UID:9523cec0-44cf-4d42-93e2-4ac006a6dc33@9523.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190408
SUMMARY:Students begin enrolling for Fall term classes according to their appointment times
TRANSP:OPAQUE
UID:bcf58362-f384-4126-91bd-c521f4a5e8b3@bcf5.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181105
SUMMARY:Enrollment appointment times for Spring term assigned to students this week
TRANSP:OPAQUE
UID:348b508f-a080-4de7-8b2e-5bbabdfa6713@348b.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190201
SUMMARY:Deadline for students to begin initial Spring enrollment (after: $50 late fee\, need dept. & academic dean permission)
TRANSP:OPAQUE
UID:9edf98ce-8de5-4246-bd0d-5f009bb25ef9@9edf.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181102
SUMMARY:Deadline for students (except Graduate) to drop a Fall term class (after: need academic dean approval)
TRANSP:OPAQUE
UID:1996e4ab-c278-4ed9-9ca0-ddacc8b2a760@1996.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20181102
SUMMARY:Deadline for Graduate students to request pass/fail or credit/audit options for a Fall term class
TRANSP:OPAQUE
UID:d5cf1343-0def-4c05-b37f-d6e11f64e11d@d5cf.org
END:VEVENT
BEGIN:VEVENT
DTSTAMP:20181221T092322Z
DTSTART;VALUE=DATE:20190419
SUMMARY:Deadline for students to change Honors Optional class status (after: need instructor permission & academic dean approval)
TRANSP:OPAQUE
UID:25e9a641-0390-4a60-9967-34a0b19d9138@25e9.org
END:VEVENT
END:VCALENDAR
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment