92

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?

2
  • 1
    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.
    – smhg
    Mar 10, 2015 at 13:46
  • 1
    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, 2017 at 14:06

4 Answers 4

41

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 (Advanced Calendar Service, see links in reference section).

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

References

1
  • An elegant and working solution. Thank you. Nov 24, 2023 at 15:37
17

According to Google Help (Subscribe to someone’s Google Calendar) it can take up to 24 hours for changes to show.

Google does not disclose the actual frequency and it can vary significantly for users. It is likely they approach it in the manner of similar sync challenges, such as the behavior used to sync external non-Gmail addresses to Gmail accounts.

Google's calendar sync frequency will be imperfectly related to the frequency with which the public calendar itself is updated. If the public calendar has little to no activity when Google reaches out to sync, the syncs will gradually decrease in frequency. If a public calendar is more active the sync frequency will gradually increase.

Google has increased the "it can take up to [hrs]" value over the years but the takeaway is that at any point in time, the public calendar may not be synced regardless if the calendar is normally in sync.

4
  • 9
    Now the note says It might take up to 12 hours for changes to show in your Google Calendar. Jul 31, 2015 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, 2015 at 16:27
  • the info is still there on the "Add someone else's Google calendar" page, it's just hidden in the "Add using a link" expandable section. Mar 30, 2020 at 18:09
  • Google keep updating the help article. The current related heading is "Use a link to add a public calendar". It's worthy to mendtion that it says that it only works for public calendars. Mar 27, 2023 at 3:36
12

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

1
  • Google keep updating the help article. The current related heading is "Use a link to add a public calendar". It's worthy to mendtion that it says that it only works for public calendars. Mar 27, 2023 at 3:37
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).

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