Guide

Manage Yahoo Calendar from the CLI

Yahoo Calendar has no public API. CalDAV access requires app passwords and manual server URLs. Nylas CLI gives you calendar CRUD for Yahoo through one interface — the same commands that work with Gmail, Outlook, Exchange, iCloud, and IMAP.

By Aaron de Mello

Yahoo Calendar has no API

Google has the Calendar API. Microsoft has Graph. Yahoo has nothing. Your only option is CalDAV, which means generating app-specific passwords in Yahoo Account Security, finding the correct CalDAV server URL, and configuring a CalDAV client library. Most developers give up before the first event syncs.

Nylas CLI connects to Yahoo Calendar through the Nylas platform. You authenticate once with OAuth, and every calendar command works the same way it does for Google or Outlook.

1. Install Nylas CLI

# macOS / Linux
brew install nylas/nylas-cli/nylas

# Or use the install script
curl -fsSL https://cli.nylas.com/install.sh | bash

# Windows (PowerShell)
irm https://cli.nylas.com/install.ps1 | iex

2. Authenticate your Yahoo account

Run nylas auth login and select Yahoo when prompted. The CLI opens a browser window for Yahoo OAuth. No app passwords, no CalDAV server URLs.

nylas auth login
# Select "Yahoo" from the provider list
# Complete OAuth in the browser
# Done — your Yahoo Calendar is connected

Verify the connection by listing your calendars:

nylas calendar list

3. List Yahoo Calendar events

# Next 7 days (default)
nylas calendar events list

# Next 30 days
nylas calendar events list --days 30

# JSON output for scripting
nylas calendar events list --json

# Filter by calendar
nylas calendar events list --calendar-id cal_abc123

Example output

$ nylas calendar events list --days 7

Team Standup
  When: Mon, Mar 30, 2026, 9:00 AM - 9:30 AM
  Location: Zoom
  Guests: 4 participant(s)
  ID: event_y7k2m

Dentist Appointment
  When: Wed, Apr 1, 2026, 2:00 PM - 3:00 PM
  ID: event_p3x8n

Found 5 event(s)

4. Create events

# Basic event
nylas calendar events create \
  --title "Sprint Planning" \
  --start "2026-04-01 10:00" \
  --end "2026-04-01 11:00"

# With location and participants
nylas calendar events create \
  --title "Product Review" \
  --start "2026-04-02 14:00" \
  --end "2026-04-02 15:00" \
  --location "Conference Room B" \
  --participant alice@company.com \
  --participant bob@company.com

# All-day event
nylas calendar events create \
  --title "Company Holiday" \
  --start "2026-04-10" \
  --all-day

5. Update and delete events

# Update an event title and time
nylas calendar events update event_y7k2m \
  --title "Team Standup (moved)" \
  --start "2026-03-30 10:00" \
  --end "2026-03-30 10:30"

# Delete an event
nylas calendar events delete event_p3x8n

6. Check availability and find time

Check your free/busy slots or find mutual openings across multiple participants:

# Check your own availability
nylas calendar availability check

# Find a time that works for everyone
nylas calendar find-time \
  --participants alice@company.com,bob@company.com \
  --duration 30m

# Check availability for a specific day
nylas calendar availability check --date 2026-04-05

7. JSON output for scripting

Every calendar command supports --json for machine-readable output. Pipe it into jq for filtering:

# Get all events as JSON
nylas calendar events list --json

# Extract just titles and times with jq
nylas calendar events list --json | jq '.[] | {title: .title, start: .when.start_time}'

# Count events per day
nylas calendar events list --days 14 --json | jq 'group_by(.when.start_time[:10]) | map({date: .[0].when.start_time[:10], count: length})'

# Export to CSV
nylas calendar events list --json | jq -r '.[] | [.title, .when.start_time, .when.end_time] | @csv' > events.csv

8. Yahoo Calendar access: Nylas CLI vs CalDAV

FeatureNylas CLICalDAV (direct)
AuthenticationOAuth (browser-based, automatic)App-specific password (manual)
Setup timeUnder 2 minutes15-30 minutes
Server URL configNot neededManual (caldav.calendar.yahoo.com)
List eventsOne commandREPORT request with XML body
Create eventsOne command with flagsPUT request with iCalendar payload
Availability checkBuilt-inNot supported
Find mutual timeBuilt-in (cross-provider)Not supported
JSON outputNativeParse iCalendar yourself
Cross-providerSame commands for all providersYahoo only

9. Yahoo-specific notes

Yahoo Calendar mobile sync

Events created through Nylas CLI appear on Yahoo Calendar's mobile app within minutes. Yahoo uses push sync for its own apps, so changes propagate faster than CalDAV polling intervals (which default to 15-minute cycles on most clients).

Yahoo Groups events

If you belong to Yahoo Groups that create calendar events, those events show up when you run nylas calendar events list. You can read and export them. Editing group events depends on the group's permission settings. Events you didn't create may be read-only.

Recurring events

Yahoo Calendar supports recurring events through the iCalendar RRULE spec. When you list events with Nylas CLI, each occurrence appears as a separate entry. To modify a single occurrence without changing the series, use the specific event ID for that instance.

Timezone handling

Yahoo Calendar stores events in the timezone you specify at creation time. If you don't specify one, Nylas CLI uses your system timezone. According to the IANA Time Zone Database, Yahoo supports all standard timezone identifiers. Use --timezone to override:

nylas calendar events create \
  --title "Cross-timezone sync" \
  --start "2026-04-05 09:00" \
  --end "2026-04-05 09:30" \
  --timezone America/New_York

Next steps