Guide

Reschedule a Meeting from the Terminal

Rescheduling is cancelling and re-inviting in one move — change the time, keep the attendees, and let everyone know. The Nylas CLI does it with a single update command: set a new start and end on the existing event, and the provider sends the updated invite to attendees. It works across Google, Outlook, Exchange, iCloud, and Yahoo without per-provider API code. This guide shows how to find the event, move it, optionally find a new slot first, and confirm attendees were notified.

Written by Caleb Geene Director, Site Reliability Engineering

VerifiedCLI 3.1.16 · Gmail, Outlook · last tested June 8, 2026

Command references used in this guide: nylas calendar events list, nylas calendar events update, and nylas calendar find-time.

How do you reschedule a meeting from the terminal?

You reschedule by updating the event's start and end with nylas calendar events update --id EVENT_ID --start NEW_START --end NEW_END. The CLI edits the existing event in place rather than creating a new one, so the attendee list, title, and conferencing link carry over. Because the event already has participants, the provider sends them the updated invite — an iCalendar REQUEST update defined in RFC 5546 (iTIP), the calendar equivalent of “this meeting has moved.”

Find the event ID first with nylas calendar events list --json. Keeping the same event ID is what makes this a reschedule rather than a cancel-and-recreate: attendee responses and the thread of the original invite stay attached. After one nylas auth login, the list-then-update flow takes under a minute on any of the five calendar backends.

# 1) Find the event ID
nylas calendar events list --json --limit 20

# 2) Move it to a new time (attendees get the updated invite)
nylas calendar events update --id event_abc123 \
  --start 2026-06-16T15:00:00Z \
  --end 2026-06-16T15:30:00Z

How do you find a new slot before moving it?

Before picking a new time, check that it works for everyone with nylas calendar find-time, passing the attendees and the duration. It returns open slots across all participants' calendars, so you reschedule into free time instead of creating a fresh conflict. Chaining find-time to update means the move lands on a slot you've verified, not a guess.

In a script, take the first slot from the find-time JSON and feed its start and end into the update. That turns “move this to a time that works” into two commands with no manual calendar comparison. The find-time read and the update write are both provider-neutral, so the same logic reschedules a Google event and an Outlook event identically.

# Find an open 30-minute slot for all attendees, then reschedule into it
nylas calendar find-time \
  --participants alice@example.com,bob@example.com \
  --duration 30m --days 5 --json

nylas calendar events update --id event_abc123 \
  --start 2026-06-17T10:00:00Z \
  --end 2026-06-17T10:30:00Z

How do you confirm attendees were notified?

Confirm by showing the event again and checking the new time and the participant list. nylas calendar events show --id EVENT_ID --json returns the current start, end, and attendees, so you can verify the move took and the right people are still on it. If the times match what you set, the provider has sent the updated invite.

Updating only the time leaves the title, location, and conferencing link intact, which is what you want for a reschedule — attendees see the same meeting at a new hour. If you need to change more than the time, the same update command takes --title and other fields. Avoid deleting and recreating, since that drops existing RSVPs and starts the invite thread over.

# Verify the new time and attendees
nylas calendar events show --id event_abc123 --json \
  | jq '{when, participants: [.participants[].email]}'

Next steps