Check which upcoming events your ICS file contains
A calendar file can be perfectly readable and still have nothing coming up, and a file full of events doesn’t prove your website is showing them. See what’s in the next 30 days. Free, no sign-up.
Runs in your browser. Files are never uploaded.
1. Add a calendar file
Calendar URLs aren’t accepted. Download the file first. This checker reads the file only and never contacts your website. Privacy
- 01Whether the file is a readable calendar, or a web page saved by mistake
- 02How many supported events are upcoming in the next 30 days
- 03The next known event date
- 04What it means, and where to look next
What counts
One-off timed and all-day events that are upcoming or in progress between now and 30 days from now, in the calendar’s time zone if it declares one, otherwise your device’s.
Where to find the file
Look for an Export, Subscribe or iCal option on the events page or in your calendar plugin’s settings. If the download turns out to be a web page, here’s why.
Guide: getting the calendar fileLooking after several client calendars?
We’re recruiting a small group of WordPress agencies to pilot automatic source-to-page checks.
About the agency pilotHow it works
What the result means, and what it doesn’t.
Four possible results
- Readable · upcoming events found
- Supported upcoming events were found, and nothing in the file could change that count. For example: “This file has 3 upcoming events in the next 30 days.” If the website shows none of them, compare the two sides.
- Readable · no upcoming events
- The file is valid but has nothing upcoming in the window: no events, only past or cancelled events, or only events further ahead. For example: “This file is readable but has no supported events in the next 30 days.” That is not an outage; check the source.
- Incomplete count
- The file is readable, but recurring events, unidentified time zones or broken event definitions could add events to the window. Any count is a minimum, never a total. For example: “At least 1 event is upcoming in the next 30 days. The real number may be higher.” To get the full number, see counting recurring events.
- Not a calendar file
- The input can’t be read as iCalendar data, for example a web page saved as .ics, a truncated download, or a file over the size limit. For example: “This looks like a saved web page, not an ICS export.” Nothing is counted, so it never shows as zero. Why a download can be a web page.
The 30-day window
The window starts when you run the check and ends exactly 30 × 24 hours later. An event counts when it starts before the end of the window and hasn’t finished when you run the check, so events in progress count. An event starting exactly at the end of the window doesn’t.
Times in UTC, or in a time zone the file defines, are converted exactly. All-day events and times without a time
zone are read in the calendar’s declared time zone (X-WR-TIMEZONE) or, if there is none, your device’s.
The report shows which was used.
What it doesn’t check
- Your live website. A file can be full of events while the site that uses it shows none. Compare the file with the events page, then use the WordPress guide if the page is the side that’s empty.
- What the export left out. Exports are often filtered by category or limited to a number of events. The checker can only count what’s in the file; check the export’s scope.
- Calendar URLs. It never fetches addresses, including any inside the file. Download the feed first, then upload or paste it.
- Every date of a recurring event. Events using
RRULE,RDATE,EXDATEorRECURRENCE-IDaren’t expanded. If they could fall in the window, the result is marked incomplete rather than guessed. - Every time zone. Zone names the browser doesn’t recognise, with no definition in the file, can’t be converted exactly. Near the window’s edges that makes the result incomplete. See ICS time zone problems.
Limits and privacy
Files up to 5 MB and 10,000 events. Events marked
STATUS:CANCELLED aren’t counted. The file is read by your browser and never uploaded, saved to browser
storage or included in analytics; the page’s security policy also stops it sending data to other sites. See the
privacy page.