RTx::Calendar(3pm)

πŸ“¦
version 1.10 Β· 2 versions
, in debian trixie, ubuntu resolute, ubuntu stonking

🌸 RTx::Calendar 🌸

Hiii bestie πŸ’– you've landed on the manual page for RTx::Calendar, part of the User Contributed Perl Documentation. Sit down, grab a strawberry πŸ“, we're gonna go through the whole thing together, and yes, we're keeping every detail, fr fr.


✨ NAME ✨

RTx::Calendar β€” a calendar view for RT ticket dates and custom fields. That's the whole name section, short and iconic. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so RTx::Calendar gives you a literal calendar view that displays tickets and reminders based on selected dates. 🌈 Once the extension is installed, if you do a ticket search using the Query Builder, you'll see a brand new Calendar entry in the page menu. Click that menu and boom β€” calendar view of your search. There's also a portlet you can drop onto any dashboard, including the RT home page. Obsessed. πŸŽ€


⭐ RT VERSION ⭐

Works with RT 5. Periodt. πŸ‘‘

For older versions of RT, check the CHANGES file for compatible earlier versions.


πŸŽ€ INSTALLATION πŸŽ€

  • perl Makefile.PL
  • make
  • make install
    • May need root permissions
  • Create or edit a file in /etc/request-tracker5/RT_SiteConfig.d
    • Add this line:
Plugin('RTx::Calendar');
  • Clear your mason cache
    • rm -rf /var/cache/request-tracker5/mason_data/obj
  • Restart your webserver

That's the whole ritual, bestie. Do it in order. πŸ’œ


🌸 USAGE 🌸

To view a Calendar, first do a ticket search in the ticket Query Builder and load the search results. Then click the Calendar item in the page menu to see the calendar view based on the results from that search. 🫢

By default, RTx::Calendar will display the Starts and Due date fields of each ticket from your search results as events on the Calendar. No config needed, it just does the thing. ✨

Other date fields added to the Format of a ticket search are displayed on the Calendar as events. You can also display events based on Date or DateTime custom fields by adding them to the Format of a ticket search as well.

Hover over events in the calendar to see additional details for that event. You can click on entries to go to the ticket. πŸ”₯

✨ Displaying Other Date Fields ✨

You can show other date fields as events on the Calendar by adding them to the Format section at the Advanced tab of your query. You can add and remove dates from search results using the Display Columns section at the bottom of the Query Builder.

Changes made using the Display Columns settings automatically update the search Format. You can also edit the Format directly on the Advanced page. πŸ’…

πŸŽ€ Calendar Portlet Saved Searches πŸŽ€

As described above, you can see a calendar for any ticket search using the calendar link in the search results.

You can also create a saved search for the calendar to be used in calendar portlets on dashboards. See "CONFIGURATION" for details on adding the calendar portlets.

By default, the calendar looks for a saved search with the name calendar and will use that search for calendar portlets. Saved searches can be saved with different privacy settings, so your system can have multiple saved calendar searches. For a given user, the calendar first checks for a user-level saved search (personal to that user), then for a group-level saved search for groups the user is in, and finally, for a system-level saved search. It's giving priority list, and honestly, respect the order. πŸ‘‘

πŸ¦‹ Displaying Reminders πŸ¦‹

Reminders are displayed on the Calendar only if you explicitly add the following clause to your query:

AND ( Type = 'ticket' OR Type = 'reminder' )

No clause, no reminders. That's the rule, bestie. 😀


πŸ’œ CONFIGURATION πŸ’œ

🌈 Use the Calendar on Dashboard 🌈

The Calendar comes with 3 different portlets that can be added to your RT dashboards:

  • MyCalendar β€” a summary of the events for the current week. πŸ—“οΈ
  • Calendar β€” a full-month view of the Calendar. πŸŒ•
  • CalendarWithSidebar β€” a full-month view of the Calendar, with a sidebar that includes an extra status filter and legends of the Calendar events. πŸ’…

To make these portlets available in RT, add them to the $HomepageComponents configuration in a file in /etc/request-tracker5/RT_SiteConfig.d:

Set($HomepageComponents, [qw(QuickCreate Quicksearch
    MyAdminQueues MySupportQueues MyReminders RefreshHomepage
    MyCalendar Calendar CalendarWithSidebar)]);

Users can then select them when building dashboards. 🫢

πŸŽ€ Display Configuration πŸŽ€

πŸ’– Display Owner πŸ’–

You can show the owner of the ticket in each event box by adding this line to a file in /etc/request-tracker5/RT_SiteConfig.d:

Set($CalendarDisplayOwner, 1);

πŸ’… Choosing the fields to be displayed in the popup πŸ’…

When you mouse over events on the calendar, a popup window shows additional details from the ticket associated with that event. You can configure which fields are displayed with @CalendarPopupFields. This is the default configuration:

Set(@CalendarPopupFields, (
    "OwnerObj->Name",
    "CreatedObj->ISO",
    "StartsObj->ISO",
    "StartedObj->ISO",
    "LastUpdatedObj->ISO",
    "DueObj->ISO",
    "ResolvedObj->ISO",
    "Status",
    "Priority",
    "Requestors->MemberEmailAddressesAsString",
));

To show custom field values, add them using the custom field name in this format: CustomField.{Maintenance Start}.

Valid values are all fields on an RT ticket. See the RT documentation for RT::Ticket for a list. πŸ“š

As shown above, for ticket fields that can have multiple output formats, like dates and users, you can also use the Obj associated with the field to call a specific method to display the format you want. The ticket dates shown above will display dates in ISO format. The documentation for RT::Date has other format options. User fields, like Owner, can use the methods shown in the RT::User documentation to show values like EmailAddress or RealName, for example. πŸ¦‹

🎨 Event Colors 🎨

The Calendar shows events in different colors based on the ticket status. Use $CalendarStatusColorMap to set alternate colors or add custom statuses. The following is the default configuration:

Set(%CalendarStatusColorMap, (
    '_default_'                             => '#5555f8',
    'new'                                   => '#87873c',
    'open'                                  => '#5555f8',
    'rejected'                              => '#FF0000',
    'resolved'                              => '#72b872',
    'stalled'                               => '#FF0000',
));

You can use any color declaration that CSS supports, including hex codes, color names, and RGB values. 🌈

The _default_ key is used for events that don't have a status in the $CalendarStatusColorMap hash. The default color is a dark tone of blue. πŸ’™

πŸ” Filter on Status πŸ”

The Calendar has a Filter on Status section that allows you to filter events by status without having to change the original query. The @CalendarFilterStatuses setting controls which statuses are available for filtering. The following is the default:

Set(@CalendarFilterStatuses, qw(new open stalled rejected resolved));

You can change the default selected statuses of the Filter On Status section by defining @CalendarFilterDefaultStatuses. The following is the default:

Set(@CalendarFilterDefaultStatuses, qw(new open));

πŸ–ΌοΈ Custom Icons πŸ–ΌοΈ

The calendar shows different icons for events based on the date fields used to display the event on that day. The %CalendarIcons setting controls which icons are used for each date field. The following is the default using provided icons:

Set(%CalendarIcons, (
    'Reminder'     => 'reminder.png',
    'Resolved'     => 'resolved.png',
    'Starts, Due'  => 'starts_due.png',
    'Created, Due' => 'created_due.png',
    'Created'      => 'created.png',
    'Due'          => 'due.png',
    'Starts'       => 'starts.png',
    'Started'      => 'started.png',
    'LastUpdated'  => 'updated.png',
));

You can also define icons for custom fields by using the following format:

    'CF.{Maintenance Start}' => 'maintstart.png',
    'CF.{Maintenance Stop}'  => 'maintstop.png',

To add custom images, create a directory called /usr/local/share/request-tracker5/static/images and copy image files there.

You can use any image format that your browser supports, but PNGs and GIFs with transparent backgrounds are recommended because they will display better to the background color of the events. The recommended size is 10 pixels wide and 7 pixels in high. Yes, that's the exact wording. Respect the 10Γ—7. 😌

πŸŒ™ Multiple Days Events πŸŒ™

By default, calendars display individual events on each day based on the dates in the query.

To display events that span multiple days, such as the full expected duration of a change blackout period, define the fields using the %CalendarMultipleDaysEvents configuration. This option accepts named keys that each define the field to reference for the start (Starts) and end (Ends) of multi-day events. For example:

Set( %CalendarMultipleDaysEvents, (
    'Project Task' => {
        'Starts' => 'Starts',
        'Ends'   => 'Due',
    },
));

The keys, like Project Task, are arbitrary labels to group each set, so you can use a name that helps you identify the entry. Name it whatever your heart desires, bestie. πŸ’–

You can also define multiple day events for custom fields by using the following format:

Set( %CalendarMultipleDaysEvents, (
    'Maintenance' => {
        "Starts" => "CF.{Maintenance Start}",
        "Ends"   => "CF.{Maintenance Stop}",
    },
    'Project Task' => {
        'Starts' => 'Starts',
        'Ends'   => 'Due',
    },
));

As with all calendar entries, the date fields referenced in the configuration must be included in the search result Format to display the event on the Calendar. ⚠️ No Format, no event, that's just how it is.


πŸ‘‘ AUTHOR πŸ‘‘

Best Practical Solutions, LLC

Originally written by Nicolas Chuche <nchuche@barna.be>


πŸ’€ BUGS πŸ’€

All bugs should be reported via email to

L<bug-RTx-Calendar@rt.cpan.org|mailto:bug-RTx-Calendar@rt.cpan.org>

or via the web at

L<rt.cpan.org|http://rt.cpan.org/Public/Dist/Display.html?Name=RTx-Calendar>.

Please do report them, bestie, don't just suffer in silence. πŸ™ˆ


This software is Copyright (c) 2010-2023 by Best Practical Solutions

Copyright 2007-2009 by Nicolas Chuche

This is free software, licensed under:

The GNU General Public License, Version 2, June 1991

Okay that's the whole page, you made it to the end, so proud of you 🫢✨ this was RTx::Calendar manual page, section 3pm, built on perl v5.40.1 and dated 2025-03-16. Go forth and calendar, icon. πŸ’œπŸŽ€πŸ¦‹

πŸ“¦ where this page comes from