ICS Calendar

ICS Calendar
  • Features
    • ICS Calendar Pro
    • Feature Comparison
    • Sample Calendars
    • Preview Your Calendar
    • More WordPress Plugins
  • Help
    • User Guide
      • Getting Started
      • General WordPress Settings
      • Shortcode Overview
      • Reference: All Parameters
      • FAQs and Tips
      • CSS Guide
      • Developer
    • WordPress Support Forums
    • Pro Documentation
      • Calendar Builder
      • Block Editor
      • Manual Calendar Setup
      • Admin Utilities and Settings
      • Customizer
      • All Parameters
    • Pro Support Forums
      • Installation and Configuration
      • Licensing
      • Troubleshooting and Bugs
      • CSS and Design
      • Feature Requests
      • Translations
      • General Support
    • Pro Support Request Form
    • Translation Suggestions
  • Blog
  • Download
  • Buy Now
  • Cart
  • My Account
Search
More...

Incremental improvements

October 13, 2021

My approach with development on ICS Calendar is to release often. Making only minor changes and making them available quickly helps to keep things moving forward and also makes it easy to identify any problems that arise.

If a new release brings dozens of changes, and users discover that something is suddenly not working right for them, it can be difficult and time consuming to try to track down the source of the trouble. By contrast, if a new release only includes a couple of changes, you don’t have to look very far if there’s an issue.

This is also a great approach for bug fixes, because it allows users to get access to a bug fix almost as quickly as it’s identified. In many cases, this can mean problems are fixed before a lot of users even know they’re there.

There are downsides to a fast release cycle, of course… namely, a hasty commit might introduce a problem that would’ve been caught with a more deliberative testing process. But in practice, this approach has been remarkably successful for ICS Calendar and ICS Calendar Pro as they have grown over the past few years.

All of which is a very long introduction to the small feature changes introduced in ICS Calendar 8.5.5 and ICS Calendar Pro 3.5.1…

ICS Calendar 8.5.5: New reload functionality

By default ICS Calendar caches parsed calendar data for one hour, to improve performance. There is some overhead in downloading the ICS feed source file and then parsing through its contents. Doing this on every page load would not be feasible, especially on sites that get a lot of traffic. So we do this process, and then store that data as a WordPress transient for one hour.

The Pro version includes a configuration setting to let you change that duration, if you want to keep the cached data longer. But the free version has, to this point, not allowed any changes to that transient duration, other than using reload="true" to tell it not to cache at all, which is not great for sites that get a lot of traffic, but which may be necessary if your calendar changes frequently.

Now there’s a way!

As of version 8.5.5, the way reload works has changed. Now you can enter any integer value, representing the number of seconds you want that calendar to be cached — yes, now if you have multiple calendars on your site, they can each have a different transient expiration. So for instance, if you want a calendar to be cached for four hours instead of one, you can enter reload="14400" in your shortcode. The integer value is in seconds, so it’s math time!

ICS Calendar Pro 3.5.1: Override displayed timezones with the icstz query string variable

This is the first step in the introduction of a new configurable option where you’ll be able to add a timezone dropdown to calendar pages, allowing users to adjust the displayed dates/times of events to their local timezone. This is great for sites that have users in multiple timezones and calendars that display virtual events users will be joining remotely.

Version 3.5.1 introduces the first part of this functionality. The dropdown doesn’t exist yet, but you can now use icstz in your URL query string to pass a specific timezone to apply to the calendars on that page.

For instance, if your calendar URL is:

https://example.com/calendar

…and your site’s default timezone is America/Chicago, but a user wants to see the calendar in Eastern Time, they can do that with this URL:

https://example.com/calendar?icstz=America/New_York

From this point, if you’re comfortable with HTML code, you could easily add a simple dropdown to allow users to pick from the main Continental US timezones as such:

<form method="get" action=".">
	<select name="icstz" onchange="jQuery(this).closest('form').submit();">
		<option value="America/New_York">Eastern Time</option>
		<option value="America/Chicago">Central Time</option>
		<option value="America/Denver">Mountain Time</option>
		<option value="America/Phoenix">Arizona Time</option>
		<option value="America/Los_Angeles">Pacific Time</option>
	</select>
</form>

This is merely intended as an example and of course it omits some timezone areas that deviate from the standard Daylight Saving Time schedule — a good example of why the named timezones are so important!

Version 3.6.0 of ICS Calendar will add an option to turn on an automatic timezone dropdown menu on your calendar pages, so you won’t need to use this code. But if you’re eager to get started right now, this should set you on the right track.

—Scott

Category: New Features

Categories

  • Uncategorized
  • New Features
  • Bug Squashing
  • Just for Fun
  • Web Design & Development
  • Translation
  • Deep Dives

Recent Posts

  • Sometimes you just have to admit defeat… at least temporarily February 1, 2023
  • A few important changes in ICS Calendar 10.7.1 and ICS Calendar Pro 4.4.3 January 31, 2023
  • ICS Calendar Pro v.4.4.2 adds numerous “missing” features to Full view January 25, 2023
  • Calendars, caching, and cron January 25, 2023
  • ICS Calendar 10.6 and ICS Calendar Pro 4.3 released January 7, 2023

Related Links

  • Room 34 Creative Services
    Developer of ICS Calendar
  • Underdog of Perfection
    Room 34’s general blog
  • More Plugins by Room 34
    Available in the WordPress Plugin Directory

Room 34 Creative Services, LLC

  • Facebook
  • Instagram
  • YouTube
  • Room 34 Creative Services, LLC
  • Minneapolis, Minnesota 55406 USA
  • info@icscalendar.com
  • More WordPress Plugins
  • Privacy Policy
  • Terms & Conditions

Copyright © 2023 Room 34 Creative Services, LLC. All rights reserved.

https://icscalendar.com/incremental-improvements

This website uses cookies for necessary functions and to enhance your browsing experience. Accept to continue or find out more in our Privacy Policy.

Accept & Continue