56

I subscribe to a couple of external calendar feeds from my Google Calendar (within a Google Apps account) and am curious to know how often they get updated.

For example, I have a subscription to my TripIt.com calendar. If I make a change in TripIt it can be a few days before that change shows up in my Google Calendar.

How often does Google Calendar update these feeds?

  • this is really annoying... more than once my wife has luckily "reminded" me of an important event in a few hours which she put on her calendar which I never saw because those events are not showing up in a timely manner. Have you noticed if manually refreshing will make it show up sooner? – Michael Dec 13 '17 at 14:06
35

Google says every few hours, which in my experience means 6-24.

Currently, calendar feeds are automatically updated by Google Calendar every few hours. We understand that some users want to have the ability to refresh the calendars they added manually and we are exploring various ways to enable this.

If the calendar you're subscribing to using Google Calendar isn't refreshed after 24 hours, please send us the calendar address and the detail of the problem so that we can investigate.

Source

14

For everyone that is on this thread or might see it in the future, I have made a Google Apps Script program to update the calendar as frequently as you like (up to every minute). It is available here: https://script.google.com/d/1BOk8MDLbLaHh6SwG1M1tsgNXjkcC-79LE0QoipRuTDxbO3fMVvqoROQD/edit?usp=sharing

The script parses the ics/ical file and creates events on a calendar based on that using Google Apps Script's version of the Google Calendar API.

Hopefully this helps you and someone who might see this in the future

  • 1
    Any chance you can add the functionality to delete events if they have been removed from the sourced calendar? – A Brothers May 10 '18 at 18:39
  • 4
    @ABrothers That's being tracked here: github.com/derekantrican/Google-Apps-Script-Library/issues/5 – derekantrican May 10 '18 at 18:40
  • I can't get it to work with facebook's webcal. e.g: webcal://www.facebook.com/ical/u.php?uid=100001.... it says invalid url? – Leo Ufimtsev May 30 '18 at 15:27
  • @LeoUfimtsev As I had said when you opened the issue, please email me and I can help you – derekantrican May 30 '18 at 18:43
  • 2
    Just discovered this and hoped it would solve the long time annoyance of slow syncing. Sadly I see the script doesn't support recurring events and our company uses a lot of them. If I don't find any other alternative I'll consider branching and trying to implement recurring appointment support. – Steve Crane Aug 22 '18 at 12:29
12

The official source is https://support.google.com/calendar/answer/37100?hl=en&ref_topic=1672445

Note: It may take up to 8 hours for changes in ICS feeds to reflect in your Google Calendar.

  • 6
    Now the note says It might take up to 12 hours for changes to show in your Google Calendar. – Rubén Jul 31 '15 at 17:42
  • That link now goes to a page that addresses a slightly different topic: Add someone else's Google calendar. – offby1 Dec 5 '15 at 16:27
8

I have noticed it may now take several days before changes are reflected. It looks like Google upped the time on their Calendar Help page from "every few hours" to "up to 8 hours" and now to "up to 12 hours."

Note: It might take up to 12 hours for changes to show in your Google Calendar.

Source: Add someone else's Google calendar: Add using a Link

0

It seems to depend on the feed. e.g.: Facebook's event feed seems to update rather quick, while (smaller?) apps can take many more hours.

0

I've tried many solutions, including the Google Apps Script mentioned in another answer, but it has a few corner cases (see comments there).

So here is my temporary solution until Google adds a Refresh now button:

  • Once I think a new event might have been added in the Calendar feed, if I only want to watch the new changes, I just use this Python code:

    URL = "YOURURLHERE"
    DISPLAYPASTEVENTS = False
    
    import urllib.request, datetime
    try:
        import icalendar
    except:
        import pip._internal.main ; pip._internal.main.main(['install', 'icalendar'])
    
    data = urllib.request.urlopen(URL).read().decode()
    gcal = icalendar.Calendar.from_ical(data)
    for component in gcal.walk():
        if component.name == "VEVENT":
            dtstart = component.get('dtstart').dt.astimezone()
            dtend = component.get('dtend').dt.astimezone()
            if dtend > datetime.datetime.now().astimezone() or DISPLAYPASTEVENTS:
                print("%s - %s    %s" % (datetime.datetime.strftime(dtstart, '%a %d %b %Y %H:%M'), datetime.datetime.strftime(dtend, '%H:%M'), component.get('summary'))) 
    

    Example of output:

    Wed 13 Nov 2019 09:00 - 10:30 Event A
    Wed 13 Nov 2019 10:30 - 12:00 Meeting B
    Fri 15 Nov 2019 10:30 - 12:00 Event C
    Mon 18 Nov 2019 15:00 - 17:30 Meeting D

  • Then I have checked the new events, and I know the new ones. That's basically all I want. (Then Google Calendar will update the display 6-24 hours later but at least I know now the new events).

protected by Community Sep 20 '15 at 1:44

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.