Subscribed Cloud Calendar Not Displaying All Events

Preamble

‘Internet’ or ‘Cloud’ calendars attract us by their ability to share events with multiple devices or persons. These calendars typically offer two access options: 1) your web browser on the publisher’s website, or 2) your calendar user client application with a subscription. There are many non-Google calendar clients (NGCCs), including Thunderbird.

While these principles may be useful in other combinations of publisher and subscriber, observances and solutions herein were specific to Google published calendars, and Thunderbird 115 calendar client on Windows 10.

Some events in a published calendar were found to be visible in the publisher’s clients, yet invisible to at least one NGCC. Said events were visible in Google’s web and android clients, while remaining invisible in Thunderbird. It turned out to be caused by the ‘shy’ event’s UID.

Observance in Thunderbird as Subscriber

ICS files (*.ics) are commonly used to move calendar data between clients, much faster than manually recreating events. Some events, perhaps older, exported from PC Outlook, came with UID(s) represented in text like ‘AAAAADjucNxvSbJLvCnawmkibqaEwioA’ (encoding unknown at time of writing). When imported, without error or warning, into a published Google calendar, resulted in client dependent visibility. Events could be viewed by Google’s client apps, BUT NOT in the Thunderbird client.

Below is the content of a commented .ics file that you can paste to create your own .ics file. Once created, import it into your own published calendar. It contains only two events; one visible to both Google and NGCCs, the other ONLY visible in the publisher’s (Google) client, NOT in a NGCC (Thunderbird) subscriber. Note lines beginning with DTSTART, or better yet edit it to make it easier to find in your calendar.

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Casa Azul//Calendar 0.1//EN
BEGIN:VEVENT
X-UID-MY-COMMENT: Outlook events exported to ics, with unknown encoding,
X-UID-MY-COMMENT: eg. AAAAABFAmW3s5hhPjkBJM2/yCv8EuSAA
X-UID-MY-COMMENT: are imported without complaint by Thunderbird & Google,
X-UID-MY-COMMENT: BUT event only visible in Google calendar clients,
X-UID-MY-COMMENT: NOT in Thunderbird client as subscriber of said calendar.
DTSTAMP:20091215T035623Z
DTSTART;VALUE=DATE:20200111
DTEND;VALUE=DATE:20200112
RRULE:FREQ=YEARLY;BYMONTHDAY=11;BYMONTH=01
SUMMARY:Unknown Outlook format UID
UID:AAAAABFAmW3s5hhPjkBJM2/yCv8EuSAf
DESCRIPTION:Missing events in subscribed Google calendar. ICS files that
 included events with older PC Outlook encoded UIDs like 
 AAAAADjucNxvSbJLvCnawmkibqaEwioA (? Global Appointment Id ?),
 when imported into a Google calendar, will be visible in Web
 Google calendar, BUT NOT in 3rd party (eg. Thunderbird) subscriber.
LOCATION:Google only
END:VEVENT
BEGIN:VEVENT
X-UID-MY-COMMENT-IMPORTANT: 2nd & subsequent imports to the same calendar
X-UID-MY-COMMENT-IMPORTANT: require that the UID be changed before import
X-UID-MY-COMMENT-IMPORTANT: to avoid previously imported errors
DTSTAMP:20091215T035623Z
DTSTART;VALUE=DATE:20200111
DTEND;VALUE=DATE:20200112
RRULE:FREQ=YEARLY;BYMONTHDAY=11;BYMONTH=01
SUMMARY:Version 4 Event UID
UID:f424d6c7-6e3f-41c6-b2d8-e432792543fa
DESCRIPTION:Event UID version can be read directly if encoded in 
 the Standard string format xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx, 
 where M=version N=variant.
X-UID-CONVERTED-TO-HEX-STRING: c7d624f43f6ec641b2d8e432792543fc
X-UID-HEX-OCTETS-6-AND-7: c641
X-UID-BIN-OCTETS-6-AND-7: 1100 0110 0100 0001
X-UID-VERSION-BITS-4-TO-7: 0100 translates to VERSION 4
LOCATION:Google and Thunderbird subscriber
END:VEVENT
END:VCALENDAR

As an aside, here is an excerpt from the RFC, “if calendar user agents choose to use other forms of opaque identifiers for the “UID” value, they MUST have a length less than 255 octets and MUST conform to the “iana-token” ABNF syntax defined in Section 3.1 of [RFC5545].”

Solution: Using Non-Google Calendar Client

The solution was to reassign the event’s UID as seen and used by the publisher, and to that end we recruited the NGCC Thunderbird to coerce Google to create a copy of the event, but with a UID it would gladly sync to Thunderbird.

Steps:

  1. It should go without saying that your client is already subscribed to your Google calendar, that contains the ‘invisible’ events with the ‘unusual’ UIDs.
  2. Ensure there is a copy of the affected event in a calendar local to your NGCC.
    If not already there, this is as simple as importing the .ics file, you originally imported into your published calendar, into your NGCC’s calendar, .
  3. Copy the shy event from your NGCC’s local calendar, and paste it into the subscribed calendar. Use ‘Find’ to create a list of events, then select the shy event from your list by hovering the cursor over it, then use the mouse to get the context menu (right-click?), and copy the event.
  4. Paste the copied local event into the subscribed Google calendar, all within your NGCC.
    – !Important! In Thunderbird, when pasting, the cursor had to be hovering over event in the list while right-clicking to paste to pass its date to your Google calendar.
  5. Confirm the freshly pasted event is visible in your NGCC’s subscribed calendar. With a good connection to your publisher, the once shy event should appear almost immediately as a new visible event in the subscribed calendar in your NGCC. Once it has, using your publisher’s client (Google) you can safely delete the shy event from your published calendar.

Comments appreciated, and bonus points for identifying the ‘unusual’ encoding used by Outlook as indicated above.

Leave a comment

Your email address will not be published. Required fields are marked *

1 + 7 =