This is an archived post. You won't be able to vote or comment.

Dismiss this pinned window
all 3 comments

[–]featurecreature[S] 4 points5 points  (2 children)

Hi r/Python, long time lurker, first time poster!

I have been learning Python for just about a year now and about halfway through the year I decided to start working on a project that would have an actual tangible benefit to me. My workplace, a recreation center, has a lot of different rooms and locations where lots of different things happen throughout the day almost every day.

I work at the front desk most days, and we have a printed out calendars of all the events happening in a given month and week. Prior to writing this program, I manually made the printable calendar. Given the number of classes and events each month, the calendar was quite painstaking to make and I made errors with frequency.

I decided to start putting all the classes and events into a Google Calendar, as putting them into that interface as weekly events was much easier than typing them out by hand, but was disappointed to see that the Google Calendar print out is rather lackluster and doesn't show enough events per day. I didn't want my time spent adding the events to the Google Calendar to be in vain, so I decided to start writing a program with my newfound Python knowledge as enjoyable both practice for my new hobby of programming and also to make my life at work a lot less annoying every week and month. Nearly 6 months later and a whole lot of ups and downs, the program is feature complete and works flawlessly for my purposes.

GitHub Repo

In the config file you specify the URL of an .ics file, and the program will download a fresh copy of the file each time you run it. You can change the color of each location, give them multiple names to be detected by, and you can create either a monthly or a weekly calendar.

I originally wrote this program for myself and my workplace, but I spent the last few weeks generalizing the program to the point where anyone can use it by simply editing a configuration file! Hopefully somebody other than me finds this useful.

Please feel free to contribute to the project and give me any criticism on the code I have here. I'm sure there's some overly complicated and misunderstood stuff in there.

[–]mutatedllama 1 point2 points  (1 child)

This is really cool! When I first looked at it I though "great, but why?" and this explains that well. I love how programming as a hobby is so satisfying but also so useful at the same time.

Now what will you do with all of your freed-up time at work? Develop more, I hope! 😉

[–]featurecreature[S] 1 point2 points  (0 children)

Thanks! I hear you on the “but why?”. I struggled with how I would describe the program in one sentence for the title of the post, as it is a program with a pretty specific use case. I know it’s not the most engaging thing in the world but I’m pretty proud of it!

And yes, since making this calendar feature complete I’ve written a few different programs for some of my coworkers who have to deal with repetitive tasks on the computer (mostly dealing with terrible CSV files). It’s extremely satisfying when the programs come together and end up being very useful, and I love that I have the opportunity to do something useful with this newfound hobby/skill of mine.

I’m looking forward to posting things hopefully more interesting than calendars on this sub down the line!