Time interval operations

Examples on this page are verified against the `ts-time-utils` v4.4.1 public exports.

Import

import { ... } from 'ts-time-utils/interval';

Examples

Interval Operations

Work with time intervals and check overlaps

import {
  createInterval, intervalsOverlap, mergeIntervals,
  subtractInterval, intervalDuration
} from 'ts-time-utils/interval';

// Create intervals
const meeting1 = createInterval('2025-01-15T09:00', '2025-01-15T10:00');
const meeting2 = createInterval('2025-01-15T09:30', '2025-01-15T11:00');
const meeting3 = createInterval('2025-01-15T14:00', '2025-01-15T15:00');

if (meeting1 && meeting2 && meeting3) {
  console.log('Meeting 1:', meeting1.start, '-', meeting1.end);

  // Check overlap
  console.log('1 & 2 overlap?', intervalsOverlap(meeting1, meeting2));
  // true

  console.log('1 & 3 overlap?', intervalsOverlap(meeting1, meeting3));
  // false

  // Merge overlapping intervals
  const allMeetings = [meeting1, meeting2, meeting3];
  const merged = mergeIntervals(allMeetings);
  console.log(`${allMeetings.length} meetings merged to ${merged.length}`);
  // "3 meetings merged to 2"

  // Subtract interval (find free time)
  const workday = createInterval('2025-01-15T08:00', '2025-01-15T18:00');
  if (workday) {
    const freeSlots = subtractInterval(workday, meeting1);
    console.log('Free slots after removing meeting 1:', freeSlots.length);
  }

  // Get interval duration
  console.log('Meeting 1 duration:', intervalDuration(meeting1), 'ms');
}