Your Personal TimeAI

DuckTape is an AI-powered CLI that makes it easy to manage your Apple Calendar, Reminders, and Notes with natural language commands. Stop clicking through calendar apps and start typing what you want to happen.

Terminal
$ ducktape
Welcome to DuckTape! How can I assist you today?
🦆 ducktape "create a zoom meeting called Team Meeting with Joe Bloggs for this coming Tuesday"
Processing natural language: 'ducktape "create a zoom meeting called Team Meeting with Joe Bloggs for this coming Tuesday"'
Translated to command: ducktape calendar create "Team Meeting" 2025-04-22 11:00 12:00 "Work" --contacts "Joe Bloggs" --zoom
Event created successfully!
🦆 |

Key Features

Natural Language Processing

Simply type what you want to do in plain English. DuckTape understands context, dates, times, and recurring events.

Multiple Calendar Support

Work with multiple calendars, smart date understanding, and automatic calendar selection based on context.

Zoom Integration

Create Zoom meetings directly in your calendar events with automatic link generation.

Three Ways to Use DuckTape

DuckTape offers flexible usage options to match your workflow preferences

1. Interactive Hybrid Mode

Enter an interactive shell where you can use both direct commands and natural language

$ ducktape
🦆 calendar list
🦆 schedule a meeting in 30 minutes with Joe
🦆 remind me to call Jane tomorrow at 2pm

2. Direct CLI Commands

Run structured commands directly from your shell for precise control

$ ducktape calendar list
$ ducktape calendar create "Team Meeting" 2025-05-06 13:00 14:00 "Work" --contacts "Joe Duck" --zoom
$ ducktape note list

3. Natural Language via AI

Use natural language directly from your shell with the ai subcommand

$ ducktape ai schedule a meeting in 30 minutes with Joe
$ ducktape ai remind me to call Jane tomorrow at 2pm
$ ducktape ai create a zoom event today at 10am called Team Check in and invite Joe Duck

Configuration with config.toml

DuckTape uses a config.toml file located in the root of the repository to manage its settings. This file allows you to configure various aspects of the application, such as whether to use a language model (LLM) or operate in Terminal Mode.

Example Configuration

[language_model]
provider = "OpenAI"  # Options: "OpenAI", "Grok", "DeepSeek", comment out by adding # in front of provider or leave empty for Terminal Mode

[calendar]
default_calendar = "Work"
default_reminder_minutes = 15
default_duration_minutes = 60

[reminder]
default_list = "Reminders"
default_reminder = true

[notes]
default_folder = "Notes"

Switching Between Modes

To switch between Terminal Mode and Natural Language Mode, update the provider field under the [language_model] section:

Setting Default Calendar

To set a default calendar for events, update the default_calendar field under the [calendar] section:

[calendar]
default_calendar = "Work"

Viewing and Editing Configuration

To view the current configuration, open the config.toml file in the root of the repository. To change settings, edit the file and save your changes.

Key Settings

Recent Updates (v0.16.22)

  • Refactored utility functions for improved clarity and maintainability
  • Enhanced calendar extraction in NLP commands
  • Improved time parsing for relative dates
  • Fixed edge cases in time parsing for specific date formats
  • Improved stability in WebSocket connections for API integrations

Get Started in Minutes

Install with Homebrew

brew install ducktapeai/ducktape/ducktape

Configure API Key

DuckTape works with popular AI models. Export an API key for your preferred provider:

# Choose one:
export OPENAI_API_KEY='your-openai-api-key-here'
export XAI_API_KEY='your-xai-api-key-here'
export DEEPSEEK_API_KEY='your-deepseek-api-key-here'

Ready to optimize your time?

Get started with DuckTape today and transform how you interact with your calendar.