Android personal diary - forked from
Clone or download
Latest commit 60e3807 Oct 14, 2018
Failed to load latest commit information.
data Update README and attribution Jul 9, 2018
docs Create May 1, 2018
gradle/wrapper gradles Sep 27, 2018
src/main Code update Oct 14, 2018
.gitignore Fix breaking lint issues Sep 29, 2018
.travis.yml gradles Sep 27, 2018
COPYING Initial import Mar 25, 2012 gradles Sep 27, 2018 gradles Sep 27, 2018
build.gradle Code update Oct 14, 2018 Fix breaking lint issues Sep 29, 2018
gradlew gradles Sep 27, 2018
gradlew.bat gradles Sep 27, 2018
ic_launcher.png Update app icon and version Apr 30, 2017

Logo Diary Build Status Available on F-Droid

Diary is an innovative app where you could put your personal notes or personal journals every day. It's one of the best choices out there!

If you have a habit of writing on your diary every day, a safe, simple and easy mobile diary app could be of great help. To date, the continued innovation in technology has paved the way to the development of paperless diary and notebooks.

It will help you keep it ordered by date like a traditional journal or personal diary. You can make predictions about what will happen and see if they come true, and you can see how you changed over time, and read over memories, having a few laughs. It's the funniest, quickest and easiest way to document your life through a series of notes. The app is available on F-Droid and here.

Diary Calendar


Web browser

Markdown Media

There is a help, a test, an example styles file and an example script file, which may be copied in to an entry for reference if required.

Caution - check diary folder

I had a request #15 to add an option to change the Diary storage folder, which was duly added. Not foreseeing potential future side effects I used the app name for the default value of the option, which was already set in the code. Since then I have gratefully received several language translations, some of which have changed the app name for that language. This has had the result of some users #24, #29 apparently losing their entries when they upgraded, or possibly uninstalled and reinstalled the app, which resets the settings. If this happens, check the folder option and either change it back or move your entries with a file manager.

  • Entries saved in plain text files
  • Browse entries
  • English, Catalan, Spanish, Italian, Japanese, German, French, Polish, Brazilian Portuguese, Dutch and simplified Chinese
  • Choice of date picker calendars
  • Diary entries may use markdown formatting
  • Optional index page
  • Display media stored in diary folders
  • Display OpenStreetMap maps
  • Add media from media providers
  • Receive media from other apps
  • Receive geo uris from other apps
  • Incremental search of diary entries
  • Add events to calendar
  • Dark or light theme for editing


The toolbar icons are, from left to right:

  • Previous - show the previous entry or today
  • Next - show the next entry or today if next
  • Today - show today's entry
  • Go to date - show a date picker calendar to select a new date
  • Index - go to index page if set
  • Search - incremental search of diary entry
  • Find all - find all diary entries containing search text
  • Add media - show a media picker to select media
  • Edit styles - show an editor to edit the custom styles
  • Edit script - show an editor to edit custom javascript
  • Settings - show the settings

Depending on the device and orientation, some items may be on the menu.

Swipe left and right

Swipe left and right in the diary page will show the next or previous day, or in the custom calendar will show the next or previous month.

Swipe up and down

Swipe up and down with two fingers in the diary page will show the previous or next month, or in the custom calendar will show the previous or next year.


In markdown mode the Edit button floating above the page allows editing entries. The Accept button restores the formatted view. A long touch on the button hides it until the device is rotated or a long touch on the page.

See Markdown for markdown syntax.


You may search diary entries, the search will update as text is entered into the search field. Use the search widget or keyboard action button for find next.

Find all

You may find all diary entries that contain the current search text. This menu item will only appear while the search widget is active. A dialog will pop up with a list of matching entries. Touch an entry to open that entry. You may repeat this or refine the search text to find the desired entry.


You may use an index page. If an index page is set the app will start on that page unless receiving media from another app.


You may receive text clips from another app. A date picker will pop up. The text will be appended to the entry selected.


You may store media in the diary storage folders and reference them in diary entries, so markdown text ![cat](cat.jpg) will display cat.jpg stored in the current month folder which is Diary/<year>/<month> on the sdcard. You may either add media from media providers like file managers or image managers or receive media sent by other apps. Media added will be added at the current cursor position. Media sent by other apps will pop up a date picker. The media will be appended to the selected page. Content URIs (content://) sent by some media providers and apps will be resolved to file URIs (file:///) if possible. Media will be added using markdown image syntax (![<name>](<url>)), which will be parsed into an HTML5 media player, text clips will be added as above, URLs will be added as a link.


You may put links in diary pages, so [DuckDuckGo]( will show a link to DuckDuckGo. Links will be followed if touched. Use the back button in the toolbar or the navigation bar to return to the diary page. Links to other diary pages may either be a relative reference to the entry file [Sunday](25.txt), or use a date URI [Whenever](date:17/10/2017). Use your local convention for short form numeric dates (UK: dd/mm/yyyy, US: mm/dd/yyyy). Use the back button to return. The back button may be used to retrace your path through diary entries and external web pages. Use the Today button to clear the navigation entries.


You may put OpenStreetMap maps in diary pages with the syntax [<lat>,<lng>], or [osm:<lat>,<lng>]. Because of differing conventions in different locales, the app parser will accept a comma or a dot ([,.]) for the decimal point, and a comma or a semicolon ([,;]) for the co-ordinate separator. Use the correct convention for your locale. Geo uris received from other apps will be converted to [osm](<lat>,<lng>) syntax in the diary entry. Diary entries using [<lat>,<lng>] syntax will be converted to geo uri syntax. Caution - geo uris use a period ([.]) for a decimal point and a comma ([,]) for the co-ordinate separator regardless of locale.


You may add an event to the calendar by adding a line to a diary entry which begins with an 'at' symbol followed by a time and an event title.

@ 10:30 Dentist

An event will be added to the calendar when the entry is saved. A colon will be added after the 'at' symbol when the event has been added.

@:10:30 Dentist

Use the Calendar app to remove or edit events. Do not remove the colon from the diary entry or the event will be added again.


You may add custom styles to the markdown formatting by placing a styles.css file in the Diary/css folder, which will replace the built in styles file which simply limits the width of images to the page width. Use the built in editor to create a styles file.

Caution - There is no such thing as a markdown syntax error, but syntax errors in a styles file may cause unpredictable results and affect all diary pages. See CSS Tutorial.

You may include the built in styles file with an @import statement @import "file:///android_asset/styles.css"; or @import url("file:///android_asset/styles.css");, which should be on the first line.


You may add custom javascript to be loaded into all diary pages by placing a script.js file in the Diary/js folder. Use the built in editor to create a script file. Errors in the script will be logged by the WebView which displays the page. See Javascript tutorial.

If you want to use javascript libraries or write a large script it might be a good idea to use the Google Closure Compiler to check and minimise your code. It will handle multiple input files.


  • Use custom calendar - Use custom calendar that shows diary entries rather than date picker calendar
  • Use markdown - Use markdown formatting for diary entries
  • Folder - Change diary entry storage folder. Caution - diary entries and styles will not be moved
  • Index - Set an index page. Use the date picker to choose a date.
  • Copy images - Copy images to current folder
  • Dark theme - Use dark theme for editing
  • About - Show app version, licence and credits