Source: https://cli.nylas.com/guides/manage-yahoo-calendar-cli

# Manage Yahoo Calendar from the CLI

Yahoo Calendar's only programmatic interface is CalDAV (RFC 4791) served from caldav.calendar.yahoo.com, behind an app-specific password. This guide covers calendar CRUD, free/busy lookup, and recurrence handling for Yahoo accounts from the terminal without writing a CalDAV client.

Written by [Aaron de Mello](https://cli.nylas.com/authors/aaron-de-mello) Senior Engineering Manager

Reviewed by [Caleb Geene](https://cli.nylas.com/authors/caleb-geene)

Updated May 2, 2026

## CalDAV is the only programmatic path into Yahoo Calendar

Yahoo never shipped a public REST API for Calendar. The supported integration path has been CalDAV (defined in [RFC 4791](https://datatracker.ietf.org/doc/html/rfc4791)) for over a decade, served from `caldav.calendar.yahoo.com`. CalDAV works, but every consumer has to handle the same setup tax: generate an app-specific password in [Yahoo Account Security](https://login.yahoo.com/account/security), locate the right server URL, then wire up a CalDAV client library and parse iCalendar ([RFC 5545](https://datatracker.ietf.org/doc/html/rfc5545)) responses. Most teams 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

Run `brew install nylas/nylas-cli/nylas` ([other methods](https://cli.nylas.com/guides/getting-started)). Yahoo doesn't require any special setup -- no CalDAV server URLs or app passwords needed when going through Nylas.

## 2. Authenticate your Yahoo account

Create an application in the Nylas dashboard, connect your Yahoo account there, then configure the CLI with your API key. No app passwords, no CalDAV server URLs.

```bash
nylas auth config
# Paste your API key when prompted

# Verify the connection
nylas auth whoami
```

Verify the connection by listing your calendars:

```bash
nylas calendar list
```

## 3. List Yahoo Calendar events

```bash
# 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

```text
$ 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

```bash
# 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

```bash
# 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:

```bash
# Check your own availability
nylas calendar availability check

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

# Check availability for a specific day
nylas calendar availability check \
  --start "2026-04-05 00:00" \
  --end "2026-04-06 00:00"
```

## 7. JSON output for scripting

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

```bash
# 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

| Feature | Nylas CLI | CalDAV (direct) |
| --- | --- | --- |
| Authentication | OAuth (browser-based, automatic) | App-specific password (manual) |
| Setup time | Under 2 minutes | 15-30 minutes |
| Server URL config | Not needed | Manual (caldav.calendar.yahoo.com) |
| List events | One command | REPORT request with XML body |
| Create events | One command with flags | PUT request with iCalendar payload |
| Availability check | Built-in | Not supported |
| Find mutual time | Built-in (cross-provider) | Not supported |
| JSON output | Native | Parse iCalendar yourself |
| Cross-provider | Same commands for all providers | Yahoo 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.

### Legacy AT&T and Verizon Yahoo accounts

Yahoo accounts are not always plain yahoo.com identities. In practice, many users still sign in through older AT&T, Verizon, Rogers, or other migrated Yahoo-powered accounts. Those edge cases matter because the account branding can differ from the backend that actually stores the calendar. This is one of the main reasons Yahoo calendar automation feels messier than Google or Outlook even before you touch CalDAV.

### Account security and recovery friction

Yahoo also has a reputation for aggressive sign-in prompts, recovery checks, and account-security interruptions after long periods of inactivity. That makes calendar automations on Yahoo feel more consumer-account-oriented than enterprise-account-oriented. If a Yahoo workflow suddenly breaks, the root cause is often account security posture or stale recovery settings, not the event payload.

### 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:

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

### Why Yahoo is different from iCloud

Yahoo and iCloud both lack a polished public calendar API story, but they are not the same operationally. iCloud users usually care about Apple ecosystem sync and shared family calendars. Yahoo users more often deal with legacy webmail identities, consumer account recovery, and CalDAV compatibility. Treating those pages as interchangeable is exactly what creates duplicate-content risk, so the workflows here stay grounded in Yahoo-specific account behavior rather than just generic CRUD commands.

## Next steps

- [Manage calendar from the terminal](https://cli.nylas.com/guides/manage-calendar-from-terminal) -- full calendar guide with DST detection, working hours, and AI scheduling
- [List Yahoo Mail from terminal](https://cli.nylas.com/guides/list-yahoo-emails) -- read and search Yahoo Mail with the same CLI
- [Send email from the command line](https://cli.nylas.com/guides/send-email-from-terminal) -- send through Yahoo or any other provider
- [Give AI agents email and calendar access via MCP](https://cli.nylas.com/guides/ai-agent-email-mcp) -- let Claude or Cursor manage your Yahoo Calendar
- [Full command reference](https://cli.nylas.com/docs/commands) -- every calendar flag and subcommand
