code: function defaults(freq, dtstart, rrule/*, tzoffset*/) {
      rrule = rrule || {};
  
      if ('object' !== typeof dtstart) {
        if ('string' === typeof dtstart) {
          dtstart = stringifyDateStr(dtstart);
        }
        dtstart = new Date(dtstart);
      }
      switch(freq) {
        case 'secondly':
          break;
        case 'minutely':
          if (!rrule.bysecond) {
            rrule.bysecond = [dtstart.getUTCSeconds()];
          }
          /* falls through */
        case 'hourly':
          if (!rrule.byminute) {
            rrule.byminute = [dtstart.getUTCMinutes()];
          }
          /* falls through */
        case 'daily':
          if (!rrule.byhour) {
            rrule.byhour = [dtstart.getUTCHours()];
          }
          /* falls through */
        case 'weekly':
          if (!rrule.byday) {
            rrule.byday = [Rrecur.weekdays[dtstart.getUTCDay()]];
          }
          /* falls through */
        case 'monthly':
          if (!rrule.bymonthday) {
            rrule.bymonthday = [dtstart.getUTCDate()];
          }
          /* falls through */
        case 'yearly':
          if (!rrule.bymonth) {
            rrule.bymonth = [dtstart.getUTCMonth() + 1];
          }
          /* falls through */
      }
  
      return rrule;
    }
docs: TODO timezone support (in dtstart)? // -0400 +0530