Field note 16

Check recurring sessions across time zones before inviting

Off-white and charcoal woven grids align above, then separate sideways below against red textile.
Check every occurrence before inviting

A weekly session can keep the instructor's local start time while changing the time another team sees, as the calculated example below shows.[4] For a learning-operations organizer, the useful question is which time the series is meant to preserve, and what happens to each occurrence after that choice.

This note proposes a MAJLS scheduling Virtual Employee that prepares an occurrence sheet and a precisely scoped change preview for an internal London–Dubai training series. It is a proposed operating design, not a demonstrated MAJLS integration or client result. The role prepares only; the named human organizer retains approval for consequential actions, including invitations, calendar edits and cancellations.

Agree what the recurrence preserves

Google Calendar uses IANA time-zone identifiers, and its API requires one time zone for expanding a recurring event.[1] Ask the organizer to choose the anchor before preparing the series: the instructor's wall-clock time in Europe/London, or a fixed UTC time. Do not silently replace one with the other.

Under this proposed workflow, collect the duration, review horizon, authorized calendar list, working windows and holiday inputs before checking availability. Keep zone identifiers beside local times. A label such as "London time" without the date and zone is insufficient for this sheet.

Calendar changes can apply to a whole recurring event or individual instances.[1] Scope therefore belongs in the request, rather than being inferred from "move training."

Filled example: three sessions, two holds

Everything in this operating example is illustrative. Organizer Maya Reed and instructor Sam Holt are fictional. Calendar states, names, policies and identifiers are synthetic; no calendar was connected or queried. The date/time conversions are calculated, not invented.

The filled recurrence-intent block is:

The conversions below use the data-only archive linked from IANA release 2026e.[4] They were calculated with Python zoneinfo against freshly compiled data and cross-checked with GNU date using the same zone files. The accompanying timezone-calculation-record.json retains dataset and file hashes; occurrence-review.csv contains full timestamps and per-calendar results.

Original date London start–end UTC start–end Dubai start–end Synthetic checks and decision
19 Oct 2026 14:00–15:00, UTC+01 13:00–14:00 17:00–18:00, UTC+04 Both calendars: no busy intervals; within windows; candidate only
26 Oct 2026 14:00–15:00, UTC+00 14:00–15:00 18:00–19:00, UTC+04 London: no busy intervals; Dubai: busy 18:15–18:45; hold
2 Nov 2026 14:00–15:00, UTC+00 14:00–15:00 18:00–19:00, UTC+04 London: no busy intervals; Dubai: notFound error; hold

All local dates match the original date in this example. The calculated change is visible: keeping London at 14:00 moves Dubai from 17:00 to 18:00 after the first occurrence.[4] Anchoring instead at 13:00 UTC would keep Dubai at 17:00 and put London at 13:00 on the last two dates.[4] Maya must choose which relationship is intended.

Google's free/busy reference returns busy ranges and permits per-calendar computation errors.[2] Its intervals have inclusive starts and exclusive ends.[2] For this MAJLS sheet, compare each complete session interval against every authorized calendar's returned intervals. Mark a busy overlap as busy and an error as unknown; neither becomes "checked free." Do not copy confidential event titles or absence reasons into the organizer's sheet.

Treat availability, organizer authorization and attendee responses as separate fields. This proposed workflow does not treat a free/busy snapshot as a reservation, an acceptance or permission to send.

Filled example: move only 26 October

Google's recurring-events guide identifies recurringEventId as the parent series ID and originalStartTime as the instance's original recurrence time; the latter still identifies the instance after it moves.[3] Preserve both original and proposed times in the packet. Google's guide also warns against individually modifying instances when the intended change is the whole series or "this and following."[3]

For this change rehearsal, assume a series exists in a fictional calendar. Its synthetic IDs stand in for retrieved records; a real request must use verified destination identities, not invented ones. The private change preview is:

Field Filled illustrative value
Parent series ID demo-training-series-01
Instance ID demo-training-instance-20261026
originalStartTime 2026-10-26T14:00:00+00:00, zone Europe/London
Current start Same as original; not yet changed
Proposed session 26 Oct, London 13:00–14:00; UTC 13:00–14:00; Dubai 17:00–18:00
Requested scope This occurrence only; retain 19 Oct and 2 Nov as separate review rows
Policy and availability Proposed interval fits both assumed windows; synthetic alternative snapshot shows no busy intervals on either calendar; final recheck still required
Audience Same two fictional training cohorts; organizer must confirm actual authorized recipient list
Decision Maya's approval pending; no invitation or edit performed

The proposed conversion uses the same IANA dataset.[4] Moving this occurrence does not resolve the inaccessible calendar on 2 November. That hold belongs to the calendar owner; the assistant must not expand a proposed one-occurrence change into a series change.

Draft invitation preview, private and unsent: "Proposed change to the 26 October facilitation session only: 13:00–14:00 Europe/London / 17:00–18:00 Asia/Dubai. Other dates remain subject to their own checks. Organizer approval and a fresh availability check are outstanding."

First-run checklist

Before preparing a real series:

Start with the filled sheet, not an autonomous booking feature. The first review should establish whether Maya can see the anchor choice, the two different holds and exactly which occurrence the change would affect.

Sources

  1. Google Calendar: Calendars and events
  2. Google Calendar: Freebusy query
  3. Google Calendar: Recurring events
  4. IANA: Time Zone Database Release 2026e

Discuss the process with MAJLS ↗