Advice and answers from the Day One Team

Note: The following information applies to Day One Mac 2.1.2 and later.

Name

dayone2 - Command line interface for the Day One journaling application.

Install

Use this to install the CLI tool (You only ever need to do this once, even for future versions):

sudo /Applications/Day\ One.app/Contents/Resources/install_cli.sh

Note: You may need to enter your macOS device login password.

Description

The dayone2 tool provides a way to interact with your Day One journal file through the command line. It is typically used for custom import scripts and utilities.

dayone2 will only work properly if you have purchased the Day One application and have run it at least one time on your computer. You can purchase Day One by visiting http://dayoneapp.com.

You must always specify a command. Supported commands is new. The entry text is read from stdin.

Usage

dayone2 [options] command

Commands

new [text] [text]

Creates new entry with optional text. Every text argument will be separated by a single space when placed into the new entry. If no text arguments are provided then standard input is used by default for the entry text. Use --no-stdin to override this behavior.

Options

-p, --photos:

Path to one or more photo file(s). If desired you can use [{photo}] in entry text to position photo. Can only have up to 10 photos listed. If this option is the last one listed, you must place a -- at the end of the list prior to the command, otherwise the command would be considered a photo path instead.

Example:

-p photo1 photo2

-z, --time-zone:

Time zone to use, for a list see /usr/share/zoneinfo. The name is expected to be a name from the IANA Time Zone Database. (see http://www.iana.org/time-zones or /usr/share/zoneinfo) Alternatively, you can specify the name as a GMT offset.

Examples:

-z America/Anchorage
-z Australia/Victoria
-z GMT-0700

-s, --starred:

Star entry if flag is present.

Example:

--starred

-d, --date:

Date to use, otherwise will use today/now. Example Format (time/seconds are optional):

yyyy-mm-dd [hh:mm[:ss]] [AM|PM]

Uses current system time zone unless you use the --timeZone option. Other formats are possible, such as 'Next Tuesday' or '12/30/2016', etc.

Example Use:

--date='2015-06-01 15:53:10'

--coordinate:

Coordinate of entry location, must provide two numbers with the first a latitude, and the second a longitude.

Example:

--coordinate 32.513 35.621

--isoDate:

Date to use in ISO 8601 format. Format:

yyyy-mm-ddThh:mm:ssZ

Always interprets the time in the UTC time zone in the gregorian calendar. Entry its self will still use current system time zone unless --timeZone option is used.

Example:

--date=2015-06-01T15:53:10Z

-j, --journal:

Name of journal for entry. Journal must already exist. If not specified then the default journal will be used.

-t, --tags:

One or more tags for entry.

Example:

--tags Soccer\ Match Win

This example would assign the tags 'Soccer Match' and 'Win' to the entry.

Using -- will stop parsing options, you can use this at the end of a list of tags if needed.

Environment

DAYONE_APP_PATH:
If the DAYONE_APP_PATH environment variable is defined we will look for Day One at the path in variable. The Day One app is needed for CLI to work.

These paths are searched in order, first one that works is the one used:

  1. DAYONE_APP_PATH
  2. /Applications/Day One.app
  3. Asking system for path to app for com.bloombuilt.dayone-mac
Did this answer your question?