Plugin for WordPress that displays google calendar(s) as custom styled weekly timetable. It is meant to ease your work with timetables and schedules. It can be especially useful if you run classes of some kind (martial arts, language teaching, dance lessons etc.). It is very easy to use drag and drop features of Google calendar and all the changes are reflected on your wordpress site. Highlights ( see features for more details):

  • Better Google Calendar Week View (compact). Automatically shows only lines that have events.
  • Multiple Google Calendars in one or more tables. In this way you can show your users only relevant schedule depending on some criteria (like a class, age group, ) and also have the main timetable for all included.
  • Easy Collaboration and Management. You can grant access for people to add/edit your schedule.
  • Custom Google Calendar schedule style. You can style the schedule using flexible CSS. Customize google calendar colors,  fonts and more.

It downloads Feeds from Google Calendar and automatically displays them as weekly timetable in a post, it reflects changes as the time passes.  Put events on endless repeat in google calendar if there are no plans for changes.

You can install it from your wordpress admin panel or by downloading it here

I appreciate your contribution. You can help me by reporting bugs, giving suggestions about improving the code or adding new features. If you find it useful, feel free to donate. The money goes towards further development.

64 thoughts on “

  1. this may sound like a stupid question, but how do i find the shortcode to use?
    i have 14 calendar feeds. This is what i was using, but it doesn’t work.


  2. hey Judy! You are the first person to contact me! Good to hear you found it useful.

    the shortcode is [gc-timetable id="1,2,3,4" hour12=true] (thanks for noticing that all my shortcodes in explanation turned into tables)

  3. Hey Alex, I never thought somebody would wanna use it in a widget. Is your widget big enough to fit some ~400px width? (it would be hard to make it smaller unless we removed text from it). What is your website?

    I’ll implement it in a few days if you still think you need it.

  4. Hi Buddy,

    I am looking for a calendar where people can add there events in my blog or website for which I have used word press.

    Does ur calendar support this…any update in future

  5. Hi! Yes it does!

    Depending on how you wanna handle this, there are a couple ways. However, in every way (except one) it only depends on how Google handles sharing and collaborating, because all this plugin does is display google calendar events (week view only). It can combine multiple of them. so these feeds (calendars) can be gathered from different accounts (people having access to manage different feeds).

    1. If you want anyone from public to be able to add events:
    * Create google calendar. Write on your website that if someone wants to create an event – they should ask you for invitation. You can create a form for that. When you get a request. Add that person a permission to manage that calendar. It is probably possible to do it automatically through Google Cal API, maybe somebody wrote a plugin for that already?
    * Make the sharing spread. Grant permission to edit sharing settings and Manage the calendar to a few people and tell them to share with others. They should grant same permissions. The network should grow!
    * (NOT RECOMMENDED) Create google account, the calendars and share the account and password with public (anyone can login and change) – very insecure (it will probably be spammed and account stolen)

    2. If you want specific people to manage all feeds (calendars) just share them with those specific people and add the feeds.

    3. If you want specific people to be responsible for specific Feed (calendar):
    * Share specific calendar with specific person in Google Calendar (this way you have access to edit yourself)
    * Ask all the people you need to create a separate google calendar in their google calendar account (Google calendar can have multiple calendars). They should make it public. They should send you the XML link of this calendar. Then all you need to do is add these calendars to my plugin. They will be updated automatically. This way, people will have access to only one or a few feeds (however you want)

    My calendar is week view only (and is more of a timetable than the whole view, so that if there are just a few events – it will take very little place. And expand vertically when more appear). If you want Month or a List view then try “Google Calendar Events” plugin by Ross Hanney. My plugin was inspired by his and contains large portion of original code.

  6. Hallo,
    A good day.
    I’m trying to get the plug-in working. But it won’t.
    The feed URL begins with enz. The copy from XML that google gives.
    What I see is the message : There are currently no upcoming events.
    There is a event on april 30.
    What’s going wrong? link for the event post.


    [gc-timetable id="1,2,3,4" hour12=true] are the codes i’m using.

    with regards,

  7. Hey Neil,

    At the time you wrote it was Saturday and it parsed events from Saturday (23d.) to Friday (29d.). And your event was not included since it is on 30th day.

    If you want to always have the upcomming week from Monday to Sunday to be on calendar: use start=”Monday” in shortcode. So:

    [timetable start="Monday"]

    Did that work out?


    • Awesome plugin! This is exactly (nearly) what I needed and so much better than the ugly option of just inserting a Google Calendar!

      Only issue I’m facing is the same as Gagan. I have some times with two events and it only shows one of them.

      Any way around this?

      • Hey Tristan,

        I was aware of this when I was designing the plugin. I couldn’t figure out how would two events at the same time appear? .. could you suggest anything?

  8. Hi there, i’d love to use this but at the moment i’m getting a ‘Fatal error: Call to undefined function: date_default_timezone_set()’ in the ‘google-calendar-weekly-timetable.php on line 409′. Do you know what may be causing this? I’m trying on a test site using WP 3.1.3 and the TwentyTen theme



    • Hey David,

      Are you using different google calendar calendars for each feed? Give me a link to your website


    • ok now i understand so i need to make new calendars for each event that i want colored differently? because atm i just have 1 calendar but because the events are colored individually on it i thought that would come through in the feed but its all olive

  9. 1 folo up question also is it posible to have events display as 4 hour blocks for example it seems even if my event is set from 1pm to 4pm in the google calendar the plugin shows the even from 1pm to 2pm

    • Hey Robert,

      I could not have thought that someone would have above 100 events in one week (you beat me!) so I hardcoded it. I will fix it in next release.

      Meanwhile: go to wp-content\plugins\google-calendar-weekly-timetable\inc and open gcwt-parser.php file. Find the line: $feed->set_max_events(100); and increase the number of events. Save it.

      ps. Happy to help, it seems more people have started using my plugin so I will go on and fix some things:)

      • Thanks! Okay, so I’ve been looking at your script, and from what I can tell, it seems possible to, with some modification, have it pull the ‘location’ of each event, and then on the final gcwt table make the title of event a link which links to a URL placed in the “where” field for google calendar. Am I correct in my assessment that this mod could be executed without a total overhaul. (I’m thinking pass the location variable directly to the outputted gcwt table with the addition of a link attribute to the title of the event, and an ‘if’ statement regarding whether the link attribute should be used or if the location var is still null then leave it as plaintext.)

        • Hey Robert,

          You are right, should be fairly easy. However, wouldn’t it achieve the same purpose If hovering with mouse would show all the details (including location).

          I have two main objectives for next versions:
          * changing the retrieving system, so It woul be using google data API instead of simplePie. This would speed up the loading and allow getting more data (for example the color of the event).
          * Javascript for hovering with mouse that would show more details

          The latter would also allow for widget version (which would probably contain no titles at all)

          These improvements will happen in upcomming 3 months. If you need a quicker solution – I can make it in a few days, but then you should donate some amount of money that you can afford because I’m going out of my way:)


          • Well, the hovering mouse would’nt quite do what I need, because what I’m wanting to do is allow the end user to click the event, and open a local lightbox-like window on the page containing a portion of ANOTHER website which has a description of the radio show in question. I’m thinking of designing the modification myself, but I was wondering if you could point me in the right direction (for example which variable should be pulled from the google calendar feed, and where would I add the link in the final creation of the table?)

  10. Love this plugin! However, it is confusing to our viewers to have the “compressed view” where time just skips around. Wondering if it would possible to have a “full view” where empty spaces are shown when there aren’t events (so a full day is shown with starting time being the start of first event and ending time being end of last event) as the block view still offers a much better starting point for customizations than the default gcal embed.

  11. Also, anyway to make it so that when clicking (or hovering) on an event the event description shows up in a popup the way it might with a traditional iframe embed?

  12. Hi, I like the look of your plugin, but I do have a question or two :)

    Firstly.. any chance of a google calendar agenda version of this? We have a Radio website, and currently using a widget on the front page to show upcoming shows (and will be adding a full calendar page with something like your plugin can achieve).

    As previously requested would a widget be included? (esp if there’s an agenda version!).

    Thanks :)

    • Hi Jason,

      what do you mean exactly by the agenda version? Check “Google Calendar Events” by Ross, it has agenda (but it doesn’t have weekly view).

      Widget would be nice, I still haven’t decided how exactly would it work, for ex: would it show the titles or just the layout and titles with hovering?

    • put option “show_sunday=1″ inside shortcode or add events on sunday. I think I forgot to include that into description.

  13. Hi! Can your plugin be used to display each author’s individual calendar (for example, on their posts, on their author archive page, etc.)?

    I’m building a directory of teachers and I’d like to for them to be able to show their availability to prospective students.

    • You can use do_shortcode() php wordpress function to enter it anywhere so:

      < ?php echo do_shortcode('[timetable]'); ?>

      Let me know if it works, never actually tried

  14. Hi.

    Is it possible to show a specific week in time?
    I’m trying to use this plugin for a congress, and it only shows the current week feed.


    • Hey,

      Yes. Use start=”17 June 2012″ (enter your time)… but make sure you have PHP 5.3, otherwise only some time descriptions will work (see PHP documentation)

  15. I noticed that when i make an appointment in my google calender for Tuesday the 25th of october it shows up on my website as the 25th but under the monday day column, i checked the date configuration on the plugin as well as wordpress and my google calender and they are all set to Melbourne time? do you know why this would occur

  16. Hi,
    I love your plugin, so simple and effective :)
    I need to show two calendars on the one page, so i’m using the shortcode with the feed id’s and it works just fine, except for one thing, the ‘Today’ setting won’t work for me. I have tried leaving it it’s default ( [timetable id="1,2"]) and also trying [timetable id="1,2" start="today"] or [timetable id="1,2" start="Today"], but every time I get the week starting on a Monday.
    I’m using your latest version and also WordPress 3.2.1. Any thoughts would be appreciated!

    • There is no such feature, but I can see how I could add it. However, I kind of stopped developing the plugin because I have not received any support from community (and the original reason has gone away). So if you could provide any support by donating any amount – I would happilly bring you the feature:)

  17. Wicked plugin top job, but major problem!!!!!!!! Deadline is 4 hours away and i just realised Wednesday on the calendar is spelt Wednessday? I’ve changed the spelling in /weekdays.txt but no changes seam to show on the site……. argh! please help :)

    • Ah, figured it out! Change the code in /google-calendar-weekly-timetable.php

      line 437

      //Load all the language variations of table headline
      if ($lang == null || $lang == ‘en’){
      $week_days = array(“Monday”, “Tuesday”, “Wednessday”, “Thursday”, “Friday”, “Saturday”, “Sunday”);
      $week_days = $this->week_days_in_language($lang);

  18. Hi! Awesome plugin! I was hoping you could direct me as to why I am getting a parse error when trying the following feed feed://

    It comes up just fine on the browser..

    The error I am getting is: The following feeds were not parsed successfully: 1. Please check that the feed URLs are correct and that the feeds have public sharing enabled.

  19. I am having trouble getting this to work. I have created plenty of events and it still says “There are currently no upcoming events.”

    The short code I am using is [gc-timetable id="1" hour12=true start=”today”].
    My page is
    (definitely a work in progress)
    And my calendar is

    Could it have to do with https? When ever I put that into the feed for some reason it saves it as http. Any thoughts would be appreciated. Thanks!

    • Hi Casey,… hm,.. hard to tell… what about [timetable] that doesn’t work either? (maybe you put wrong ID?)

      Try putting some repeat for your events (that span both back and forth in time), or some other feed


Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>