         utc_off: utc_off,
         from: %{utc: from, wall: from_wall_time, standard: from_standard_time},
         until: %{standard: until_standard_time, wall: until_wall_time, utc: until_utc},
-        zone_abbr: TzUtil.period_abbrevation(zone_line[:format], std_off, letter)
+        zone_abbr: TzUtil.period_abbrevation(zone_line.format, std_off, letter)
       }
 
       # Some times this will calculate periods with zero length.
       # Set period to nil if the length is zero (ie. "until" equals "from")
       # Nil values will be filtered by another function
-      if period[:until][:utc] == period[:from][:utc], do: period = nil
+      if period.until.utc == period.from.utc, do: period = nil
       # If there are more rules for the year, continue with those rules
       if length(rules_tail) > 0 do
         [period|
-         calc_periods_for_year([zone_line|zone_line_tl], until_utc, utc_off, rule[:save], years, zone_rules, rules_tail, rule[:letter])
+         calc_periods_for_year([zone_line|zone_line_tl], until_utc, utc_off, rule.save, years, zone_rules, rules_tail, rule.letter)
         ]
       # Else continue with the next zone line
       else
         [period |
-         calc_rule_periods([zone_line|zone_line_tl], until_utc, utc_off, rule[:save], years|>tl, zone_rules, rule[:letter])
+         calc_rule_periods([zone_line|zone_line_tl], until_utc, utc_off, rule.save, years|>tl, zone_rules, rule.letter)
         ]
       end
   end

        utc_off: utc_off,
        from: %{utc: from, wall: from_wall_time, standard: from_standard_time},
        until: %{standard: until_standard_time, wall: until_wall_time, utc: until_utc},
        zone_abbr: zone_line_hd[:format]
      }
    h_calc_periods_no_rules(period, until_utc, zone_line_tl, letter)
  end

    end
    if zone_has_until_limit do
      # If zone has an until - use that max year.
      {{{max_year_to_use, _, _}, _}, _} = Map.get(zone_line_hd, :until)
    else
      max_year_to_use = @max_year
    end
