Introduction

LuaCalendar is a Calendar skin designed for use with the Rainmeter program. By using the power of the Lua scripting language, the skin loads instantly and is exrtremely flexible. The skin itself is designed to use Style Sheets, allowing for complete customiztion of the look and feel of the skin while retaining all of the functionality of the script.

One of the major features of the skin is the abiltiy to display events that are defined by the user. This was a long requested feature of the existing calendar skins. All of the easily configured settings and features are listed below.

Release Notes

Download from GitHub.
Version 4.1
11/4/2012
  • Fixed a fatal error when no Repeat was set for an event.
  • Made the script more modular.
  • Changed variables to use XML standard syntax.
  • Updated the Enigma style.
  • Added support for the new MouseScroll actions introduced in the Rainmeter 2.5 beta.
  • Added option for SingleFolder option.
  • Reinstated Range option for displaying Month or Week range.
See more changes

Calendar Settings

All settings can be found in Settings.inc

Skin Actions

LuaCalendar has the ability to show different months while using the Month range. While some styles may have visual elements for this, not all do. This is where the Skin Actions come in.

Scroll Actions

When hoving over the skin, scroll using the scrollwheel on the mouse up to move back and down to move forward. This action is based on the update speed of the skin. It groups multiple scrolls during on update into a single scroll action.

Context Menu Actions

Under the submenu named "Custom skin actions" in the context menu several options have been made available. These options include editing of the calendar options, moving through the months, and returning to the current month.

Using Event Files

To use Event Files set EventFile to the path of a text file on the calendar measure. Multiple files can be aggregated together using a pipe delimiter.
Examples

There is no limit to the number of Events used. Event files must be formatted in the following XML style format, indents not required.

<EventFile Title="Holidays" Repeat="Year">
	<Event Month="1" Day="10" Description="Event Description"/>
	<Set Month="2">
		<Event Day="12" Description="Some Other Event"/>
	</Set>
<!--This is a comment.-->
</EventFile>

The complete contents of the Event file must be enclosed in <EventFile></EventFile> tags. The following settings may be set on each tag and are overridden by those nested within them.

*This field is optional.

Variables

There are two instances when certain Variables can be used with LuaCalendar settings. The first being LabelText and the other being in the Day parameter of Holiday Files. Variables are surrounded by {$Curly Brackets} with the dollar sign in front of the variable name, and are case insensitive.

Static Variables
Variable Days

Variable Days are used to calculate holidays that occur on days like the Second Tuesday of the month. They are defined using the following keywords.

Starts with: First, Second, Third, Fourth, Last

Ends with: Sun, Mon, Tue, Wed, Thu, Fri, Sat

Example:
<Event Month="11" Day="{$FourthThu}" .../>

Built-In Event Variables

In order to support events that require complex calculations, LuaCalendar supports certain Built-In events. These events create both a {$EventNameMonth} and an {$EventNameDay} variable. The value of these variables are recalculated for each year so that they are kept up to date.

Currently the supported Built-In Events are Easter, GoodFriday, AshWednesday, and MardiGras.

Style Sheets

LuaCalendar uses style sheets in order to allow for complete customization of the look and feel of the skin. Style sheets are files with individual MeterStyles and Variables used to define the meter properties of the skin. These files in located in the Styles folder, under another folder whose name defines the name of the style sheet.

There are three style sheets included with LuaCalendar. The Default style is very basic and is based on the old Enigma calendar. Default2 shows a little bit of what the style sheets can actually do. The third style sheet is made to match the Enigma 3.1 calendar.

Creating Style Sheets

There are two files used to create a style sheet. Styles.inc contains all of the meter styles required as well as any special meters. Variables.inc is used to create any variables specifically used by the style sheet.

Changelog

4.1 (11/27/2012) 4.0 (11/4/2012) 3.5 (7/20/2012) 3.4 (5/22/2012) 3.3 (4/18/2012) 3.2.2 (3/26/2012) 3.2.1 (3/12/2012) 3.2 (3/11/2012) 3.1.3 (3/1/2012) 3.1.2 (2/24/2012) 3.1.1 (2/7/2012) 3.1 (2/5/2012) 3.0.1 (1/2/2012) 3.0 (1/21/2012) 2.2.3 (1/15/2012) 2.2.2 (8/22/2011) 2.2.1 (8/14/2011) 2.2 (8/13/2011) 2.1 (8/8/2011) 2.0 (8/8/2011)