Tag Archives: google

Google calendar ics files

If you are using a google calendar ics file as event input you should be aware of the following:

  • the ics file may get rather large over time.  At time of writing there is no way to get the feed to only show future events, so it will have ALL your old data.  This all has ti be parsed, turned into event data and held in memeory to see if there any any modifications, or exclusions.    If you don’t need the old events, try deleting them.  You may need a bulk delete tool.  I have used this GcalToolkit, not ideal but it does work.
  • At times the ics feed used to be slow to update – check what the actual feed contains if you think events are missing .  Open the ics file in notepad, and check if your events or your changes are there.  Note that an instance may have multiple VEVENTS with incremental SEQUENCE numbers later in the file.

On the other hand, when using an amr-events feed in a google calendar,  google can be slow to refresh reading the feed, sometimes it will do the first one fine, then you make a change and expect google to show in instantly.  It will not.  Not much we can do about that.

Google Calendar, Timezones and daylight saving

I’m fully aware of how complicated and dangerous working with timezones can be, especially if recurring events and daylight saving are involved.

Outsourcing calendar event creation

So when I decided that I wanted my kids school timetables in ics format and that I’d ‘outsource’ the manual data entry of it, I took great care to setup the calendars myself, specifying the Australia/Sydney Timezone.     I found a great person on elance based in the states who was knowledgeable about google calendar and recurring events.  I shared the time table calendars with her.  She set up the events in the two timetables. I checked it and all was good for a few weeks.

Then the normal Sydney (NSW) daylight saving period ended.

And NOW all the timetable events were TWO hours out – yes two (2) ?? why?

Being knowledgeable in these matters and having done SO many tests with timezones changing daylight saving at different overlapping times etc, I knew that it must be something to do with timezones.  I logged on to google and could not find anything online that told me anything.  Timetable calendars still set to Sydney, but all the events now mysteriously 2 hours out.

Troubleshooting google calendar – check the ics file

I downloaded the ics file to see if that would shed any light.    The ics file had a timezone definition for Australia/Sydney AND for America/New_York and ALL the class events were defined with timezone America/New_York.

Now google very clearly says that it stores the events in UTC / GMT time.

So why export events for a timezone OTHER than

  • either UTC or the
  • calendars timezone or
  • the accounts timezone?

why not just one hour out?     Had I missed the New York daylight saving change on 9 Mar?  Maybe ?   The times are just of the hour like 10.50 instead of 8.50 – maybe when I saw 9.50 I just thought 9 ?  who knows?

How to avoid unintended timezone daylight saving clashes happening again ?

Well I’m guessing – it appears google will use the timezone of the person creating the event EVEN if the calendar is in a different timezone AND this timezone is NOT shown when one looks at the event, NOT even in event debug / troubleshooting mode (add &eventdeb=1 to your google calendar url).

The creator has to manually assign a timezone to each and every event to ensure that it gets exported correctly.

 How to fix the current timetables offset by two hours?

I didn’t want to delete the existing calendars and Google allows no other easy way to delete events from any non-main calendar other than deleting the whole calendar.

I decided  a temporary fix (until the next daylight change !)  would be to export to ics, do a global change to a timezone 2 hours before New_York (hopefully one with out daylight saving – sadly I gave up on that)

I created a test calendar and did several iterations to check the timings. I ended up using http://gcaltoolkit.net/ to handle bulk deletes of the calendars and learnt a few things along the way:

For example: Even if you have deleted the events and want to re-import them, google will not let you.  To fox it – do a gloabl change on the @google.com of the UID .  Events are identified by UID.

At one stage I even felt I needed to change the file name and calendar name, but perhaps I was just tired, confused and annoyed by then.


  1. BACKUP all your google calendars and possibly other data first before letting another app mess with your data.  Create a TEST calendar to test the whole process.
  2. Export your ics files, create a backup copy.
  3. Use something like notepad++ to do a search/replace on the timezone.  Make sure your new timezone is something google will recognise and the correct UTC offset.
  4. Search and replace the @google.com to @yourdomain.com or really anything…(alter the event UID globally every time you re-import the file.)
  5. Save and close the ics file.
  6. Use gcaltoolkit or similar to delete the events in your target calendar (very carefully check which calendar you are accessing)
  7. Make a cup of tea – ieWait a few minutes, sometimes it takes google a while to update.
  8. Import the ics file and check the times.




Google indexation and pagination

For best google indexation and search engine crawler bandwidth management, please read this post and then check your events website:

Events date navigation  and rel=”next” and rel=”prev”

Main calendar canonical tag

  • Your main calendar page should have a canonical tag in the header
  • wp default themes already generates a canonical tag for pages
  • Assists in telling google that alternate views are just that – ie: “alternate” and not duplicate data. EG: if you are showing views like agenda and calendar, the default first view will have the canonical tag.

Use Google webmaster parameter tools

You may wish to tell google to ignore certain parameters (eg not to ‘crawl’ into the future? ) – or maybe not… your call

  • this could maybe reduce the impact of google crawlers – else they get so clever now, they try t o follow all GET and POST parameters.
  • some parameters that may be in use in your calendar and widget date navigation are:
    • days,
    • months,
    • events,
    • start,
    • startoffset,
    • agenda,
    • calendar

Judicious use of upcoming events widgets

Think carefully about Seo, sidebars, widgets and what pages have sidebars.  Should  that events  calendar and upcoming events list be on every pageand post? Some notes:

Google indexing, bandwidth and calendar parameters


spiders clogging up the works
March 2012 in Australia has been very wet - the spiders don't like it any more than we do!


The events plugin does what it can to help get your events indexed (see below).  Dynamic event lists change frequently (daily or more?) as time goes by – they drop off old events and show the newer ones.  These frequent “updates” could perhaps cause more attention from a search engine.    Widgets (box and calendar) that have internal links back to the main calendar page can also make google think that page is important.  Especially if those widgets are on every page.

Maybe that is what you want, and maybe it is not!  You may need to control it.

You the webmaster can help the seach engine spiders or crawlers further to index your site while not chomping all your bandwith.

How events plugin helps indexing:

Other tools to manage indexing and bandwidth

How to get your events indexed:

How to manage bandwidth


  • Think carefully about using multple views and about the sidebar widgets that can generate a plethora of links back to the calendar page -Get other measures  in place to avoid overemphasising the calendar page importance
  • Attempting to avoid bandwith issues may affect indexing – wrt query string parameters.  Best is to ‘tell’ google what to focus on.  See webmaster guidelines
  • It seems google will be indexing the POST variables too and they advise sticking with GET (ie the query parameters)
  • Hmm – maybe adding rel=”next” and “prev” to pagination will help avoid diluting page rank? See googles video or article
  • Also we should consider sidebar widget issues – links on every page that point to the same  may overly highlight the calendar page and make it more important – sometimes this is intentional and sometimes not.  Related question via Brad Gosse: 2010/12/06/do-tag-clouds-in-sidebars-affect-seo-ranks?    Should the widgets have no follow links on certain links ? …. but we want that indexing….maybe just the rel control?