public function getDayPeriodsNarrow($val = null)
    {
        $calendar = $this->getName();
        // gregorian, generic

        $data = array();
        $calendsFallback = array($calendar, 'gregorian', 'generic');
        foreach ($calendsFallback as $calendar) {
            $data = $this->getRepoReader()->getEntityByPath(
                'dates/calendars/calendar[@type="'.$calendar.'"]/dayPeriods/dayPeriodContext[@type="format"]/dayPeriodWidth[@type="narrow"]/dayPeriod'
            );

            if ($data) {
                break;
            }
        }

        $dayperiods = array();
        foreach($data as $d) {
            $dayperiods[$d['type']] = $d['value'];
        }

        $val = strtolower($val);

        return (isset($dayperiods[$val])) ? $dayperiods[$val] : $this->getDayPeriods($val);
    }