# CalInvite::Providers::Yahoo

Yahoo Calendar provider for generating calendar event URLs.
This provider generates URLs that open the Yahoo Calendar with a pre-filled
event creation form. Supports all-day events, regular events, and multi-day
sessions with proper timezone handling.

Note: Yahoo Calendar handles multi-day sessions differently from other providers,
generating separate event URLs for each session.

@example Creating a regular event URL
  event = CalInvite::Event.new(
    title: "Team Meeting",
    start_time: Time.now,
    end_time: Time.now + 3600,
    description: "Weekly team sync",
    timezone: "America/New_York"
  )
  yahoo = CalInvite::Providers::Yahoo.new(event)
  url = yahoo.generate

@example Creating a multi-day event URL
  event = CalInvite::Event.new(
    title: "Conference",
    multi_day_sessions: [
      { start_time: Time.parse("2024-04-01 09:00"), end_time: Time.parse("2024-04-01 17:00") },
      { start_time: Time.parse("2024-04-02 09:00"), end_time: Time.parse("2024-04-02 17:00") }
    ]
  )
  urls = CalInvite::Providers::Yahoo.new(event).generate # Returns multiple URLs

_class_ defined in `lib/cal_invite/providers/yahoo.rb`

Superclass: `CalInvite::Providers::BaseProvider`

## Constants

### `BASE_URL`

Value: `"https://calendar.yahoo.com"`

Base URL for Yahoo Calendar

## Instance methods

### `generate()`

Generates Yahoo Calendar URL(s) for the event.
Handles all event types: all-day, regular, and multi-day sessions.

@return [String] A single URL for regular or all-day events, or
  multiple URLs (separated by newlines) for multi-day sessions
@raise [ArgumentError] If required time fields are missing for non-all-day events
