In my post today, I’m going to show you how to use GoogleDocs and Google Calendar to create a dynamic calendar for a course. This calendar can be displayed as a web page or embedded in a course web site. Why would you want to do this? Well, if you’re happy with using a printed syllabus only—which is perfectly fine, of course—then there’s no reason for you to try this. However, the method I explain below is useful if you’d like a little added flexibility and efficiency when updating a course syllabus from semester to semester. Plus it’s kind of nice to have an online syllabus that will always show the immediately upcoming events and assignments for your course.
To pull this off, we’ll take the following steps:
- Create a spreadsheet in GoogleDocs,
- Add information to each row in the spreadsheet for each class meeting,
- Export the spreadsheet data as a CSV (“comma separated value”) file,
- Import the CSV file into Google Calendar, and then
- Make the calendar available to others.
Create a spreadsheet
You don’t have to use GoogleDocs for your spreadsheet: programs like Microsoft Excel, Apple Numbers, or OpenOffice Calc will work just as well. Our goal is simply to end up with a CSV file that we can import into Google Calendar.
According to the GoogleCalendar support page on CSV files, our spreadsheet can have as few as 2 columns (“Subject” and “Start Date”) or as many as 9. You’ll need to decide which of the columns you want to include before you start adding information to the spreadsheet.
In the example below, I’m just using 3 pieces of information about each class meeting: “Subject,” “Start Date,” and “Description.” Since the course always meets at the same time and in the same place, I didn’t see much point in including such information as “Start time” and “End time” or “Location.”
Add information
For each date that the class meets, add the necessary information. You can even use HTML in the “Description” field if you’d like to link to online material such as an assignment sheet or assigned reading.

Export the spreadsheet data
Once you’ve added all the necessary information, choose “File > Download as > CSV (current sheet)” and save the file.

Import the CSV file
Now switch to Google Calendar and within your account create a calendar specifically for this course. Under “My calendars” select “Add” and provide the information in the form that appears.

Next, under “Other calendars,” click the “Add” down arrow and select “Import Calendar.” (Note that this is a different “Add” link than the one you use for creating a new calendar.)

Choose the CSV file that you saved in the step above, and select the new calendar that you just created.

If everything works as it should—fingers crossed!—you will now have a calendar with detailed information about each class meeting.
Make the calendar available to others
Of course, this calendar becomes really useful when people other than yourself are allowed to view it. Your next step is to change the calendar settings so that the information it contains is public.
Here’s a 44-second YouTube video created by Google Calendar to explain how to do so:
There are two simple ways to publish your calendar: you can find the URL (web address) to share with others, or you can embed the calendar in a web page.
Here’s a 42-second YouTube video from Google Apps that explains both of these options:
Embedding your calendar in a Google Sites page is extremely easy, as this 55-second YouTube video demonstrates:
However, you can embed your calendar in any web page, not just one created with a Google Sites account.
If you do embed your calendar in a web page, I recommend that you display your items in the “Agenda” format so that they are listed like this:

The immediately upcoming class meetings will automatically be displayed, and students can click on an individual day to see details:

I’ve used this technique in my courses before and have been pleased with the results. When it comes time to teach a particular course again, I can go back to the original spreadsheet, change the dates of the class meetings, update the other information as necessary, and then repeat the subsequent steps to have a brand-new syllabus.
What about you?
Do you have favorite syllabus hacks? Have you used Google Calendar (or another online calendar service) for your courses? Please share in the comments.
[Creative Commons-licensed photo by Flickr user David Silver.]


Developing online and blended learning programs requires research and collaboration. Learn how top technology companies are partnering with campuses across the country to advance online learning as it becomes an increasingly important aspect of higher education.
13 Responses to Create Your Syllabus With a Spreadsheet and a Calendar App
hmwhitney - June 1, 2010 at 10:59 am
Great post! I have done this in the past, and my only wish is that I could figure out a way to have Google Calendar link in a live sense with a Google Doc spreadsheet so that if I have to make major changes in the schedule it will update the Google Calendar automatically. Do you refer students to the online calendar, and if so, do they make use of it?
finleyt - June 1, 2010 at 11:00 am
Great post. I use Engrade, the free online grading program that has a calendar built in. Students can easily click on an assignment linked within an upcoming date and see the entire assignment description. -tbf
guesti - June 1, 2010 at 11:35 am
Thanks for sharing this. I was just about to sit down and redo my syllabi.
george_h_williams - June 1, 2010 at 11:38 am
@hmwhitney: I’ve been trying to learn how to make the spreadsheet and the calendar connected in a “live” way so that it functions the way you describe. I’m pretty sure it’s going to involve a Google Apps Script, but I’ve yet to figure it all out. When you’re in your spreadsheet, choose “Tools > Scripts > Insert…” and see what you can find.Yes, I refer students to the online calendar, and yes, they make use of it. However, I still provide them with a printed calendar at the beginning of the semester. They know, however, that any changes that may take place will be posted to the online version.@finleyt: Thanks for the reference to Engrade! I’ll have to check that out.@guesti: We live to serve. =)
tbleything - June 1, 2010 at 11:46 am
Is it possible to do the same thing using excel?
george_h_williams - June 1, 2010 at 11:52 am
@tbleything: Yep! Just use the same column headers and be sure to save the spreadsheet as a CSV file.
peril - June 1, 2010 at 3:09 pm
I think this could be really handy later in the semester too.If you need to edit something, and the students are all using a live calendar for reference, updating the times etc edits the “origonal” so they don’t have two print outs with conflicting dates.I also like the idea of being able to copy and past the spreadsheet data into Word as a table so that, if I need to make a hand out, everything is automatically formatted in a neat and meaninful way. Saves me having to muddle through MS’s tables tool.I’ll check out Engrade- always looking for new and better tools!~ Peril http://drperil.com
meaganr - June 1, 2010 at 5:28 pm
I just followed the instructions and it worked! Thanks for the tutorial.Meagan
nubianwed - June 1, 2010 at 7:52 pm
This has been one of the most helpful articles I’ve ever used. Thanks!!!
philosophy - June 1, 2010 at 9:38 pm
What bothers me about your (illuminating & interesting) suggestion is that one must first use a spreadsheet, then go through several steps to put it in student-accessible form. ‘Twould be nicer if the student-accessible version could be modified directly, day by day when needed, instead of having to go through the several steps again. Our place is highly committed to BlackBoard (Bb), and I’ve been using a calendar procedure somewhat like yours – I download a suitable calendar macro from Word, fill it in for the semester, then upload it to Bb for student viewing. If I want to revise it during the semester, I have to do that in Word, then delete the old calendar in Bb and upload the revised version.But your suggestion motivated me to explore our Bb9 to see if it has a calendar function – and it does! With week view, month view, etc. And it can be modified anytime, without any uploading from a spreadsheet or Word – just what I wanted!So thanks for motivating me to discover something that I probably wouldn’t have even looked for otherwise!And previous years’ Bb materials are retained and downloadable.
donerwin - June 2, 2010 at 10:32 am
No reason you can’t update (or add) the events directly in Google Calendar. But if Bb has it and that’s what your students are using, that would be best. Whatever we use, we should keep the students’ experience in mind. If Bb (or other LMS) has a place where all of a students’ syllabi could be displayed on one calendar, that would be preferable than having some in Bb and some in Google and others on paper…
george_h_williams - June 2, 2010 at 11:28 am
@peril: I didn’t include any instructions about creating a print-based version of the syllabus from the spreadsheet, but (as you write) it’s not too hard to do that.@meganr & @nubianwed: Glad you found this so helpful! Thanks for the feedback.@philosophy: Importing the spreadsheet into Google Calendar is not all that time consuming, but you’re right that it does require extra steps. What I like about this process is that it doesn’t tie you to any particular platform or application: I can take that CSV file and do any number of different things with it; importing into Google Calendar is only one option.By contrast, if I create my syllabus in a proprietary application, I’m more likely to be tied to that proprietary application. I have to admit that I don’t have any experience with Blackboard, but every time I take a stab at learning how to use it I’m turned off by the (perhaps only apparent) limitations of what I can do with materials that I create in Blackboard.Can I take my materials out of one system easily and then put them into a completely different system? I don’t know, but it seems (from my limited experiments) that the answer with Blackboard is “No.” If I’m wrong, I would be happy to be corrected (and more likely to dive into Blackboard).The time most of us spend creating our course materials is substantial. Speaking only for myself, I don’t want to spend hours and hours on materials that can only work with one system.@donerwin: Yes, you can update events and associated information directly in Google Calendar; it’s not necessary to go back to the spreadsheet every time you want to make a change.As to whether or not students should experience multiple systems, I’m of the opinion that the more diverse their expertise the better. The world beyond the campus requries them to learn to navigate multiple interfaces, so the more time they spend expanding their digital skills the better. (cf. Amy Cavender’s “Encouraging Students’ Digital Problem-Solving Skills.”)
jacobi1804 - June 3, 2010 at 7:44 am
I’ve stumbled on this approach as well, but starting with a spreadsheet makes it easy to reuse. Very cool.As far as syncing the spreadsheet and the calendar, you might try syndicating the spreadsheet as a RSS feed, then munging it with Yahoo! Pipes or tarpipe. They have building blocks which can do things like convert RSS to iCal. An additional step I’ve taken is added my office hours to the calendar (and required TA’s to do the same). That way (a) students see them and remember that they exist (b) They can always find when the next one is. Also, since I sync the google calendar to my own desktop calendar, if I need to suddenly change an hour I can easily and it appears on the website without me having to touch blackboard.