B Squared2Plugins

Google Calendar on WordPress: embed it, or import it.

There are two ways to put a Google Calendar on a WordPress site. Embed Google’s own calendar with the code from its settings, which is free and takes a few minutes. Or import the calendar with Calendar² Pro, which checks it on a schedule and turns each event into a page on your own site.

01Which one

Embedding

  • Shows Google’s calendar in a frame on your page. Nothing to install.
  • The events stay on Google: they aren’t pages on your site, so they don’t appear in your site search or sitemap, and the look is Google’s, within the options it offers.
  • Good when you just want your schedule visible and you already keep it in Google.

Importing with Calendar² Pro

  • Each event becomes an event post on your site, with its own page, in your theme, in your month, list and day views and your site search.
  • Events with a venue address get schema.org event data on their page, the markup search engines read for event listings.
  • You keep editing in Google; Calendar² checks for changes on a schedule.
  • Good when the calendar is part of your site: a venue, a club, a local news “what’s on”.
02Embed

  1. 01

    Make the calendar public

    Visitors only see events if the calendar is shared with them. In Google Calendar on a computer, open Settings, choose the calendar, and under “Access permissions for events” tick “Make available to public”.

  2. 02

    Copy the embed code

    Still in that calendar’s settings, open “Integrate calendar”. Under “Embed code”, click Customise to choose the size and colours (Google suggests at least 500 pixels wide and high), then copy the code.

  3. 03

    Paste it into WordPress

    Edit the page, add a Custom HTML block and paste the code in. Publish, and Google’s calendar appears on the page.

That’s all there is to it, and it doesn’t need a plugin. If you’d rather use one to show Google Calendar events, Simple Calendar (“Simple Calendar – Google Calendar Plugin”) is a free plugin on WordPress.org with 50,000+ active installs (checked 25 October 2026).

03Import

  1. 01

    Copy the calendar’s iCal address

    Make the calendar public as above, then in its settings open “Integrate calendar” and copy the “Public address in iCal format”. It ends in .ics.

  2. 02

    Add it as a feed

    In WordPress, go to Calendar² → Feeds → Add Feed and paste the address. “Test this feed” shows the first events it would import, without saving anything.

  3. 03

    Choose how it runs

    Pick how often to check for changes, how far ahead to import, whether new events publish straight away or wait for review, a category to add them to, and what happens when an event disappears from Google. Save, and the first import is queued to run a minute later.

The address Google gives you looks like this:

https://calendar.google.com/calendar/ical/…/public/basic.ics

The same feed screen takes any iCal address (.ics or webcal://), including Outlook, iCloud and Meetup calendars, as well as sites running The Events Calendar and RSS feeds with event dates.

04What comes across

On 25 October 2026 we downloaded five public Google calendars (UK holidays, phases of the Moon, week numbers and two volunteer-run community calendars) and ran them through Calendar²’s feed importer with its default 12-month window. What we saw:

  • Repeating events stayed repeating. All 38 live series in the community calendar came across as one repeating event each, with Google’s rule kept: monthly on “the second Tuesday” or “the last Thursday”, weekly on a day, and every two or four weeks. None had to be split into separate dates.
  • Series that had already finished weren’t imported, and weren’t treated as removed either.
  • Each event kept its own timezone, as set in Google (Berlin, New York, Kolkata and so on).
  • All-day events, such as bank holidays, came across as all-day on the right dates.
  • Locations became venues. Where the location had a street or a town, the venue got an address too, which is what the schema.org data needs.

What to check

  • Formatting in descriptions. In both community calendars, Google sent links and formatting as HTML tags inside the plain-text description, and Calendar² showed the tags as text. Plain web addresses become links. Check a few imported events, and edit any that need it (your edits are kept, below).
  • Images. The Google calendars we tested didn’t include event images, so add featured images on your site if you want them.
  • Single dates moved or cancelled in Google come across as their own event (on the new date, or marked cancelled) and are taken out of the series. Our test calendars had none inside the window, so this one is from the code rather than the test.
05Staying in sync

  • It checks every hour, twice a day or once a day (the default), or only when you click “Run now”.
  • It sends a conditional request, so when the source says nothing has changed, a check costs one small request.
  • It imports from today up to 12 months ahead by default, and up to 36 if you choose.
  • When a check fails, it tries again after an hour, then six hours, then a day, and after three failures in a row you see a notice.
  • If you edit an imported event on your site, a later change in Google won’t overwrite your edit.
  • If you don’t want an event, move it to the Trash. Calendar² skips it from then on, even after the Trash is emptied.

When an event is deleted in Google

You choose: mark it cancelled (the default), keep it as it is, or move it to the Trash. Only events inside the import window count. Nothing is removed if the feed comes back empty, cut off or too large, and if more than half of a feed’s events would go at once, it waits for you to confirm, so one bad answer from Google can’t empty your calendar. If a cancelled event comes back, it’s restored on the next check.

06The other way

Going the other way needs no Pro. The free Calendar² plugin gives every event an “Add to calendar” link for Google Calendar and an .ics download for iCal and Outlook. It also publishes an iCal feed of your upcoming events (the next six months, up to 500), for the whole calendar or one category, with a “Google Calendar” link readers can use to subscribe.

To show your calendar on any page, use the [calendar2] shortcode. To take events in from the public as well, see community submissions, the other half of Pro.

07Pricing

Everything a calendar needs is in the free plugin, with no limits and no account. Pro is for sites that take events from the public or pull them in from elsewhere.

Download Calendar² free
  • Public event submissions

    A form visitors use to send in events, with an approval queue so nothing goes live until you say so.

  • Calendar feeds

    Import events from iCal and RSS feeds, other Calendar² sites and sites running The Events Calendar, and keep them in sync.

  • Updates and email support

    For as long as the licence runs. If it ends, Pro keeps working; nothing is switched off.

Calendar² Pro · yearly licence

1 site

$79/ year

One website. What most buyers need.

5 sites

$149/ year

A handful of sites, or a small agency.

Unlimited sites

$299/ year

Every site you build or run.

  • A site is one WordPress install
  • Staging and local copies are free
  • 30-day refund, no questions
  • USD, plus VAT or sales tax at checkout

Already bought? Sign in to your licences to download Pro, manage sites and billing.

08Sources
  • Our test, 25 October 2026: Calendar² Pro’s feed reader (main) and Calendar² 1.1.0, run without WordPress over five public Google Calendar .ics files downloaded that day, with a 12-month window from 25 October 2026 in a site set to Europe/London. Calendar² Pro’s and Calendar²’s source code for scheduling, sync and removals, which the test didn’t run.
  • Embedding and public calendars: Add a calendar to your website and Create & manage a public Google calendar, Google Calendar Help, checked 25 October 2026.
  • Simple Calendar’s active installs: its WordPress.org listing, from the WordPress.org plugins API, checked 25 October 2026.
09Contact

A calendar that won’t import cleanly?

Send us the feed address and a person replies, usually within two UK working days, with what comes across and what doesn’t.

00Cookies

This site uses Google Analytics to count visits and see which pages get read. It sets cookies, so it stays switched off unless you say yes. Nothing else is tracked, nothing is sold, and there is no advertising. What this means

00Analytics

We count visits with Google Analytics, which sets two cookies, to see which pages get read and improve the site. Google only processes it for us: no advertising, no data sharing, no profiles. You can turn it off now or any time from Cookie settings in the footer. The details