Your LiveWhale calendar can include more than just the events that get entered directly. Using linked calendars, you can pull and sync event data from other systems you're already using on campus. Student events, athletics sites, even a plain old Google Calendar—if someone is already storing event data somewhere, chances are you can pull it into LiveWhale.
To set up a linked calendar, go to "Linked Calendars" and then add a new calendar feed.
There's a lot of optional settings here, but all you really need is the feed URL in ICAL format. ICAL is a standard events format published by most websites and calendar platforms.
We'll talk about other supported formats in a few minutes. In general, though, if you have access to an ICAL feed (or .ics format), use that.
After you paste in your ICAL URL, LiveWhale checks it to make sure it loads.
If I were to save now, LiveWhale would immediately check the feed, and start creating events in LiveWhale to match each event in the ICAL feed.
Before I do that, though, let's look at some of these other options. It's always easiest to configure these before syncing any event data, since most of them only apply to an event when it's first loaded. We'll talk more about that sync process later.
Let's take a peek at all the linked calendar options you have. First, let's look at setting an image for your linked calendar events: if you upload or select one here, it'll get applied to all newly synced events. (Another reason to do these setup steps first.) Some feeds do include an image in the feed data, but many don't, so having a default is a good idea. You can also set a group default image in the group settings, or we'll look later at customizing the image per-event.
By default, each event from a linked calendar will have its own event details page in LiveWhale. However, if your feed includes an external URL and you'd prefer people reach that when clicking on your event, you can check this off to "Send all event links to the original site." This is especially handy if your external site has more info than is being published in the ICAL feed.
Let's talk about past events—by default, LiveWhale will always match what's in the ICAL feed, so if an event vanishes from the feed, the LiveWhale copy also gets sent to the trash. However, some feeds only publish upcoming events, so this option tells LiveWhale to preserve past events, even if they disappear from the ICAL source.
All the other overrides—description, event types, tags, contact info, privacy—work just like they do in the Edit Event page. A common approach is to set event types and one or more tags here, for instance your athletics feed might have the type "Athletics" and be tagged "Men's Soccer" or "Women's Sports" and "Basketball".
Leaving the linked calendar status as live means events will sync hourly and appear in LiveWhale's Your Events list, as well as the public calendar. Flipping this to hidden would immediately suppress all of this feed's events from both the public calendar and the back-end dashboard, and it would pause the automatic hourly sync. Switching back to live would bring the events back and resume syncing. We'll talk more about live/hidden as it pertains to individual events later.
You can absolutely set up your linked calendars as a plug-and-play tool, without knowing anything about how they work behind the scenes. But, in case it's useful, let's go on a quick nerdy tangent here for just a minute to explain how your event data gets read into LiveWhale.
By definition, the inside of any ICAL feed (or .ics file) is just a specially-formatted list of events. Here's what events in ICAL format looks like—and I repeat, you'll never need to do this! But, we're learning. When LiveWhale loads this, at minimum, you can expect that date, time, and title (called Summary) will sync from the feed, including any repeats.
There's a supported field for description that will load in as the event description.
There's also a categories field that, if it matches values from your configured event types, LiveWhale will automatically assign per-event.
Location is also a supported field.
Then, if your feed references any images using the attach syntax, those will appear on your calendar.
Beyond that, if you're dealing with a custom-built ICAL feed, you can use X- values to bring in LiveWhale-specific data for things like tags, visibility settings, or other custom fields.
Our documentation contains a list of all the supported ICAL fields that LiveWhale will automatically translate. If this doesn't fully meet your needs, there are options for other custom mappings which we'll talk about later.
In general, you can always start by plugging in an ICAL feed and seeing what the events look like in LiveWhale, then decide if that's the best approach for that particular data source. Your next step may be setting up some overrides from the Edit Linked Calendar page. Or, if you're feeling limited by the data that the ICAL feed is providing, that might be a case for a separate API integration. More on that later.
Okay! Nerdy tangent over, let's get back to using linked calendars in LiveWhale.
Linked calendars automatically sync every hour, creating, updating, and deleting events in LiveWhale to match the feed data. You really can "set it and forget it" and everything will auto-update every hour.
If you don't want to wait an hour—say, if you know certain data was changed in the original feed and want it to show up faster—you can always use the "Refresh events" button to trigger an immediate update.
Sometimes you might make a change on another site and it doesn't immediately show up in LiveWhale, even with a manual refresh. This might mean your update hasn't been published to the original ICAL feed yet; we'll talk next about customizing events on the LiveWhale side to cover that scenario.
In the Linked Calendar Settings, admins also have an option for "Save and reset all events" – this can be useful for cases where you've changed some overrides, like images, tags, etc and you want them to get applied instead of any pre-existing customizations. Be careful, though, this process will fully delete and reload the events, assigning them new URLs. LiveWhale also reminds you of this when you click reset all events.
One thing to note: saving or refreshing a large feed with a lot of events can take a few minutes! When a feed has a lot of events, don't worry if refreshing takes a few minutes. This is one reason LiveWhale refreshes "behind the scenes" every hour.
Let's talk about editing individual linked calendar events in LiveWhale.
First things first: on the public facing calendar, linked calendar events look just like any other data natively entered into LiveWhale. Here on the editing side of things, though, there are just a few differences to point out for your calendar managers.
First, from the event list, you can see this chain icon tells me this is a linked calendar event, with the name of what feed it's coming from.
When I go in to edit one of these, you'll notice a few things:
Almost every field is editable. Only the title, date and time fields are locked, because we treat those as canonICAL from the source feed. If you want to change a title, date, or time, you should do that on the 3rd-party site where the feed is loading from. (Or, there are some customization options a developer could help you with—more on that later.)
If you set a feed-wide default image, that'll appear here and you can click to override it. Or, if the ICAL itself includes an image for this event, that'll show up here, and you can still override it with another image if you like.
Certain fields like description and location have a "Customize" checkbox, so you can see what the feed is providing or choose to override it with your own value. Any fields you customize this way will be preserved on future hourly syncs.
One trick: if there's an event you don't want to appear, deleting it usually isn't the best way. As this warning explains, a deleted event will get re-created in the next hourly sync, assuming it still exists in the source feed. So, if you want to suppress a linked calendar event from showing up on your calendar, marking it as hidden is usually the best way to go.
That can also be a smart workaround in situations where you spot incorrect data coming from a 3rd-party source—in a pinch, you can always mark the problematic version as hidden, then make a new event (or duplicate this one in LiveWhale) to get the correct event details posted to the calendar ASAP.
You can delete any linked calendar using the "delete" button from the Linked Calendar manager. When you do, you're given two options:
First, you can delete all events, and they'll get sent to the trash can.
Or, you can keep all events – this will remove the linked calendar and the hourly sync, but preserve all event data and customizations. Each of the linked calendar events becomes a native LiveWhale event, as if it had been entered or imported by a user.
Using the keep all events option, you can treat linked calendars as a 1-off import tool to migrate data from an old system, as long as it's in ICAL format.
That should be all the info you need to get started with linked calendars. Now, for the last couple minutes of this training, we'll talk about some more advanced approaches to syncing event data from non-ICAL sources.
The first option you may have is an RSS feed (sometimes called XML format). Many services publish RSS feeds, but it's not always optimized for posting events. For example, some RSS feeds don't include a separate date/time field, which makes it almost impossible to get clean event data from. But, LiveWhale does its best to digest RSS formatted events, and you can always try dropping your RSS feed URL into the Linked Calendar editor and seeing if it works.
JSON and CSV are two other structured data formats that might be useful for syncing events from. And, as long as they have the right column or variable names inside, you can easily create a linked calendar from either. In our documentation, we have examples of how to set up special Linked Calendar URLs to translate those sources into the ICAL format LiveWhale expects.
(Remember, you can also import events from CSV spreadsheets in bulk using the built-in Import Data tool. This linked calendar approach is only if you want to set up a persistent hourly sync.)
Beyond that, if you have event data living somewhere that doesn't publish an iCal, RSS, JSON, or CSV of event data, you can check if they have their own API. Plenty of integrations we've made over the years—including EMS and Salesforce—work by plugging into those APIs and then translating the desired results into ICAL syntax. Depending on the complexity, that may be something your developers could build themselves, or feel free to reach out to us about developing a supported plugin.
One final tip before you go:
Remember earlier when I said that you can't edit the title field of a linked calendar event, since we treat the source data as canonical?
Well, with a little developer skills, you can make automated changes to things like event titles. Let's say you have an athletics feed that starts every event with "University of Whatever Men's Basketball vs", "University of Whatever Women's Soccer vs…." It's a lot of the school name, which we don't need to see on our own university's calendar! In our docs, we demonstrate how a simple custom PHP module using the onBeforeSync handler can overwrite that data, cleaning it up before it syncs with LiveWhale.
This is also possible to do for other fields, with a little PHP knowledge you can automatically massage descriptions, event types, tags, or more.
Or, some folks use the onAfterSync handler to attach other actions to the hourly sync, such as re-saving certain fields that usually only get checked when an event is first created.
There's a lot of possibilities: feel free to try things out on your dev server, or contract with our team for help building out whatever you might need. Happy calendaring!