Skip to content

Instantly share code, notes, and snippets.

Last active Feb 26, 2020
What would you like to do?
The Events Calendar: Change Event Archives' iCalendar export links to webcal://
* The Events Calendar: Change Event Archives' iCalendar export links to webcal://
* This causes the "iCal Export" button to recommend to calendar applications
* (e.g. Apple, Outlook, etc.) that they should *subscribe* instead of *download*.
* We have to use JavaScript instead of PHP because the "Export Events"
* iCalendar link gets built via JS via
* /wp-content/plugins/the-events-calendar/src/resources/js/tribe-events.min.js
* (the script with the `tribe-events-calendar-script` handle).
* If we were to use PHP (using the `tribe_get_ical_link`,
* `tribe_get_single_ical_link`, and `tribe_events_force_filtered_ical_link`
* filters), the link would be static instead of being dynamic to things like
* an Event Category archive page.
* @link
* @link
add_action( 'wp_footer', 'cliff_ical_link_js_override_webcal', 100 );
function cliff_ical_link_js_override_webcal() {
wp_enqueue_script( 'jquery' );
<script type="text/javascript">
jQuery( document ).ready( function ( $ ) {
var url = $( 'a.tribe-events-ical' ).attr( 'href' );
url = url.replace( 'https://', 'webcal://' );
url = url.replace( 'http://', 'webcal://' );
$( 'a.tribe-events-ical' ).attr( 'href', url );
} );
Copy link

ky78 commented Aug 6, 2018

Can you test the following link -> It seems to be working as a true subscribe link for me. If so, I think it would be great to share with others.
Please note that we use /calendar/ instead of /events/ after the domain.

Question -> do you have a snippet that can change the current URL to

Currently, I need to email people the link...

Copy link

simleknight commented Jan 28, 2020

Hey, I know you haven't been on here in a while, but I'm having trouble knowing exactly where this is supposed to go. The closest I've come is ical.php, but I don't see where in there makes the most sense. Can you help?

Copy link

cliffordp commented Jan 28, 2020

I haven't seen these comments before... this snippet (without opening PHP tag) goes in your child theme's functions.php

If you need more help, please contact

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment