Android open source calendar

Overview

Etar Calendar

Etar Calendar

Etar (from Arabic: إِيتَار) is an open source material designed calendar made for everyone!

Get it on F-DroidGet it on Google Play

Etar Calendar

Why?

Well, I wanted a simple, material designed and state of the art open source calendar that anyone can make better.

Special thanks

The application is an enhanced version of AOSP Calendar. Without the help of Free Software for Android team, this app would be just a dream. So thanks to them!

Features

  • Month view.
  • Week, day & agenda view.
  • Uses Android calendar sync. Works with Google Calendar, Exchange, etc.
  • Material designed.
  • Support offline calendar.
  • Agenda widget.
  • Multilingual UI.

How to use Etar

Store your calendar on the phone only:

  • Create an offline calendar.

Sync your calendar to a server:

  • A cloud-synched calendar could be a google calendar, but you can also use any other public Caldav-server or even host your own (which would be the only way to keep full control over your data and still have ONE calendar usable from different devices.) To sync such a calendar to some server you need yet another app, e. g. DAVx5. That’s necessary because a Caldav client isn't included in Etar.

The following link provides a tutorial how to use Nextcloud + DAVx5 + Etar.

Technical explanation

On Android there are "Calendar providers". These can be calendars that are synchronized with a cloud service or local calendars. Basically any app could provide a calendar. Those "provided" calendars can be used by Etar. You can even configure in Etar which ones are to be shown and when adding an event to which calendar it should be added.

Important permissions Etar requires

  • READ_EXTERNAL_STORAGE & WRITE_EXTERNAL_STORAGE
    ->import and export ics calendar files
  • READ_CONTACTS(optional)
    Is queried the first time an appointment is created and can be rejected. But then search and location suggestions no longer work. ->allows search and location suggestions when adding guests to an event
  • READ_CALENDAR & WRITE_CALENDAR
    ->read and create calendar events

Contribute

Translations

Interested in helping to translate Etar? Contribute here: https://hosted.weblate.org/projects/etar-calendar/strings/

Google Play app description:

You can update/add your own language and all artwork files here

Build instructions

Install and extract Android SDK command line tools.

tools/bin/sdkmanager platform-tools
export ANDROID_HOME=/path/to/android-sdk/
git submodule update --init
gradle build

License

Copyright (c) 2005-2013, The Android Open Source Project

Copyright (c) 2013, Dominik Schürmann

Copyright (c) 2015-, The Etar Project

Licensed under the GPLv3: https://www.gnu.org/licenses/gpl-3.0.html Except where otherwise noted.

Google Play and the Google Play logo are trademarks of Google Inc.

Comments
  • Redesigning calendar preferences + offline calendar

    Redesigning calendar preferences + offline calendar

    It started with my idea to integrate offline calendars into Etar. Then I found the current screen to manage calendars very difficult to use. Because I like the way they can be managed in Google's calendar app, I started to refactor Etar's preferences.

    There are still some todos left before this can potentially be merged. I am interested in general feedback if these UI changes are desired.

    I have a licensing question: Is Apache v2 a requirement? I would really prefer GPLv3 for a project that is not a library, but an end-user app to prevent greedy companies from taking the code and making a proprietary version out of it without contributing back. This happens a lot with K-9 Mail...

    Screenshot_20191227-095759

    Screenshot_20191227-100200

    opened by dschuermann 46
  • Etar is crashing.

    Etar is crashing.

    Yesterday everything was fine with etar, today it´s crashing instantly. I don´t know what could be the problem, i didn´t changed anything ( major ) on my phone. ( Android 7.1.1 )

    I deisntalled the app and installed it again, but the app is crashing instantly, after asking for calender access, with im allowing.

    EDIT: Stock calender is still working.

    bug 
    opened by natackx 24
  • Add option to hide Contact's birthdays

    Add option to hide Contact's birthdays

    Contact birthdays are showed automatically, the problem is that with Birthday Adapter installed your calendars "Contacts birthdays" have to be hidden, otherwise duplicates of birthdays are being displayed; Unfortunately Etar do not have this option.

    In S Planner you can hide them: S Planner -> Calendars -> Display -> Uncheck Contact's birthdays. Doing so did only hide Contact's birthdays in S Planner but not in Etar.

    Its not possible to hide Contact's birthdays in Etar, can you please add that option?

    opened by davidhedlund 24
  • no notifcations

    no notifcations

    Etar 1.0.16 freshly installed from f-droid, Etar notifications are allowed and set up as urgent (popup+sound), notification sound is configured, event has notification set up, I even turned battery optimization off for Etar. And nothing - no popup, no sound, no notification at all, even when screen is on. Android 8.1. Two other calendars are installed: google - notifications are disabled, and simple calendar pro - stopped.

    opened by lvmm 19
  • Margin around calendar view leads to dithering when scrolling

    Margin around calendar view leads to dithering when scrolling

    When you zoom the calendar view very small and your screen is large enough, there is a small margin around the calendar view at the top and bottom. When you scroll, there are ugly dithering effects, like you can see in this screen record: https://i.imgur.com/sZewz8T.mp4

    Phone: OnePlus 5 with Andoid 9 (default display size, 5.5 inches, 1080 x 1920 pixels, 16:9 ratio (~401 ppi density).

    opened by sedrubal 19
  • Event formatting in month view refactored to introduce EventFormatter

    Event formatting in month view refactored to introduce EventFormatter

    Long term goal of my changes is to allow multi-line calendar events in MonthView (this should be configurable) This commit decouples dealing with some formatting issues - like whether to show event time, or "more" indicator, from actual event drawing.

    opened by 0xym 19
  • Primary color selection

    Primary color selection

    Hi ! As some people seemed to want that feature (issue #310), I added the ability to choose the primary color of the app. Please tell me if you want it be done in another way (there might be better ways to implement that feature), or if you want me to change the colours. Any feedback is appreciated ! Cheers !

    opened by Askrenteam 17
  • Opentask view Support

    Opentask view Support

    I added Opentask support in read-only mode: current features

    • show/hide task calendars
    • view task on day, week, month and agenda view
    • view task detail with markdown support
    • support Opentask
    • share task as VTODO
    • add option to show/hide non-visible calendars in main preferences list
    • widget show tasks
    opened by mebitek 16
  • Not exporting db in Android 10

    Not exporting db in Android 10

    Clicking the "export db" button results in App crash, in Samsung galaxy a21s. I know is a beta feature, but i need to access my db file, anyone had the same problem? I switched recently(new phone) to Android10, always worked super well with previous versions i owned.

    opened by teonactl 16
  • Bug: Scrolling to January 1970

    Bug: Scrolling to January 1970

    When scrolling in monthly view to a different month in the future, closing and reopening Etar (just put it in the background - do not force close), it says 'January 1970', but it still shows the monthly calender of June 2022 or whatever. If you now again put Etar in background and reopen it, it shows the monthly view for January 1970.

    I'm using: Google Pixel 6 Stock ROM Android 12 Etar 1.0.30 from F-Droid

    Screenshot_20220424-094445~4

    Screenshot_20220424-094454

    bug 
    opened by EukalyptusX 15
  • Birthday contacts

    Birthday contacts

    Hello, Could someone please explain to me why some of my android contacts are not showing up in etar? Some contacts are showing up and some are not. I can't see what makes them different I must add that I do not synchronize my contacts with google Many thanks for help

    opened by plegrand1 15
  • All-day entries: end date is automatically increased by 1 as soon as edit mode is entered

    All-day entries: end date is automatically increased by 1 as soon as edit mode is entered

    Whenever I want to change all-day entries, their end date is automatically increased by 1 as soon as I enter edit mode. The start date, however, remains unchanged.

    Example: Mon, Jan 2, 2023 is set to Tue, Jan 3, 2023 when entering edit mode. The start date remains at Mon, Jan 2.

    opened by Staubach-GS 0
  • Bump org.jetbrains.kotlin.android from 1.7.0 to 1.8.0

    Bump org.jetbrains.kotlin.android from 1.7.0 to 1.8.0

    Bumps org.jetbrains.kotlin.android from 1.7.0 to 1.8.0.

    Release notes

    Sourced from org.jetbrains.kotlin.android's releases.

    Kotlin 1.8.0

    Changelog

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend

    ... (truncated)

    Changelog

    Sourced from org.jetbrains.kotlin.android's changelog.

    1.8.0

    Analysis API

    • KT-50255 Analysis API: Implement standalone mode for the Analysis API

    Analysis API. FIR

    • KT-54292 Symbol Light classes: implement PsiVariable.computeConstantValue for light field
    • KT-54293 Analysis API: fix constructor symbol creation when its accessed via type alias

    Android

    • KT-53342 TCS: New AndroidSourceSet layout for multiplatform
    • KT-53013 Increase AGP compile version in KGP to 4.1.3
    • KT-54013 Report error when using deprecated Kotlin Android Extensions compiler plugin
    • KT-53709 MPP, Android SSL2: Conflicting warnings for androidTest/kotlin source set folder

    Backend. Native. Debug

    • KT-53561 Invalid LLVM module: "inlinable function call in a function with debug info must have a !dbg location"

    Compiler

    New Features

    • KT-52817 Add @JvmSerializableLambda annotation to keep old behavior of non-invokedynamic lambdas
    • KT-54460 Implementation of non-local break and continue
    • KT-53916 Support Xcode 14 and new Objective-C frameworks in Kotlin/Native compiler
    • KT-32208 Generate method annotations into bytecode for suspend lambdas (on invokeSuspend)
    • KT-53438 Introduce a way to get SourceDebugExtension attribute value via JVMTI for profiler and coverage

    Performance Improvements

    • KT-53347 Get rid of excess allocations in parser
    • KT-53689 JVM: Optimize equality on class literals
    • KT-53119 Improve String Concatenation Lowering

    Fixes

    • KT-53465 Unnecessary checkcast to array of reified type is not optimized since Kotlin 1.6.20
    • KT-49658 NI: False negative TYPE_MISMATCH on nullable type with when
    • KT-48162 NON_VARARG_SPREAD isn't reported on *toTypedArray() call
    • KT-43493 NI: False negative: no compilation error "Operator '==' cannot be applied to 'Long' and 'Int'" is reported in builder inference lambdas
    • KT-54393 Change in behavior from 1.7.10 to 1.7.20 for java field override.
    • KT-55357 IllegalStateException when reading a class that delegates to a Java class with a definitely-not-null type with a flexible upper bound
    • KT-55068 Kotlin Gradle DSL: No mapping for symbol: VALUE_PARAMETER SCRIPT_IMPLICIT_RECEIVER on JVM IR backend
    • KT-51284 SAM conversion doesn't work if method has context receivers
    • KT-48532 Remove old JVM backend
    • KT-55065 Kotlin Gradle DSL: Reflection cannot find class data for lambda, produced by JVM IR backend

    ... (truncated)

    Commits
    • da1a843 Add ChangeLog for 1.8.0-RC2
    • d325cf8 Call additional publishToMavenLocal in maven build scripts and enable info
    • 0403d70 Don't leave Gradle daemons after build scripts
    • 52b225d Fix task module-name is not propagated to compiler arguments
    • d40ebc3 Specify versions-maven-plugin version explicitly
    • 2e829ed Fix version parsing crash on Gradle rich version string
    • f603c0e Scripting, IR: fix capturing of implicit receiver
    • 06cbf8f Scripting, tests: enable custom script tests with IR
    • d61cef0 Fix deserialization exception for DNN types from Java
    • ea33e72 JVM IR: script is a valid container for local delegated properties
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump actions/cache from 3.0.11 to 3.2.2

    Bump actions/cache from 3.0.11 to 3.2.2

    Bumps actions/cache from 3.0.11 to 3.2.2.

    Release notes

    Sourced from actions/cache's releases.

    v3.2.2

    What's Changed

    New Contributors

    Full Changelog: https://github.com/actions/cache/compare/v3.2.1...v3.2.2

    v3.2.1

    What's Changed

    Full Changelog: https://github.com/actions/cache/compare/v3.2.0...v3.2.1

    v3.2.0

    What's Changed

    New Contributors

    ... (truncated)

    Changelog

    Sourced from actions/cache's changelog.

    3.0.11

    • Update toolkit version to 3.0.5 to include @actions/core@^1.10.0
    • Update @actions/cache to use updated saveState and setOutput functions from @actions/core@^1.10.0

    3.1.0-beta.1

    • Update @actions/cache on windows to use gnu tar and zstd by default and fallback to bsdtar and zstd if gnu tar is not available. (issue)

    3.1.0-beta.2

    • Added support for fallback to gzip to restore old caches on windows.

    3.1.0-beta.3

    • Bug fixes for bsdtar fallback if gnutar not available and gzip fallback if cache saved using old cache action on windows.

    3.2.0-beta.1

    • Added two new actions - restore and save for granular control on cache.

    3.2.0

    • Released the two new actions - restore and save for granular control on cache

    3.2.1

    • Update @actions/cache on windows to use gnu tar and zstd by default and fallback to bsdtar and zstd if gnu tar is not available. (issue)
    • Added support for fallback to gzip to restore old caches on windows.
    • Added logs for cache version in case of a cache miss.

    3.2.2

    • Reverted the changes made in 3.2.1 to use gnu tar and zstd by default on windows.
    Commits
    • 4723a57 Revert compression changes related to windows but keep version logging (#1049)
    • d1507cc Merge pull request #1042 from me-and/correct-readme-re-windows
    • 3337563 Merge branch 'main' into correct-readme-re-windows
    • 60c7666 save/README.md: Fix typo in example (#1040)
    • b053f2b Fix formatting error in restore/README.md (#1044)
    • 501277c README.md: remove outdated Windows cache tip link
    • c1a5de8 Upgrade codeql to v2 (#1023)
    • 9b0be58 Release compression related changes for windows (#1039)
    • c17f4bf GA for granular cache (#1035)
    • ac25611 docs: fix an invalid link in workarounds.md (#929)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 0
  • Google Play version out of date since March 22nd

    Google Play version out of date since March 22nd

    Latest release of Etar is v1.0.33, whereas the version hosted on Google Play is v1.0.29 since January 29th. Google Play version has been out of date since March 22nd, when v.1.0.30 released. Best to have this updated for those who use Google Play as their app source for Etar.

    opened by cyberparty 1
  • "All Day" events collapse to zero width in day view with 1.0.33.

    "All Day" events are being displayed at the top of the day view, however with 1.0.33 they collapse to have no width, they only appear as colored bars ~4 pixel wide at the left edge with no text. They can still be selected normally, though, so the space is allocated to them and they can be edited. This does only appear to happen with single day events, if they span multiple days they are displayed normally.

    1.0.30 does not show this issue, reverting back and forth between 30 and 33 reliable shows the issue. The events are sourced from a DAVx5 synchronized calendar, if that is of any interest, I'm seeing this on a phone and a tablet with Android 10.

    opened by RobertZenz 15
Releases(v1.0.33)
A simple calendar with events, customizable widgets and no ads.

Simple Calendar A simple calendar with events and a customizable widget. A simple calendar with optional CalDAV synchronization. You can easily create

Simple Mobile Tools 3k Jan 3, 2023
Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks

MindOrks 1.2k Dec 29, 2022
An Open-Source repository that contains all the Android Dev and Kotlin concepts and several projects on android ranging in difficulty making this repo completely beginner-friendly.

An Open-Source repository that contains all the Android Dev and Kotlin concepts and several projects on android ranging in difficulty making this repo completely beginner-friendly. The main aim of this repository is to help students who are learning Android Development or preparing for an Android Developer role-based job.

Mimo Patra 15 Dec 29, 2022
Open-source modular Android App IDE for Android

Blokkok Blokkok is an open-source modular Android App IDE for Android. Every components of the IDE are separated from each other by modules, every mod

null 14 Dec 16, 2022
Open Super dApp - Your gateway to the new digital commons. Integrated mobile messenger, Ethereum wallet, and Web 3.0 browser built on open, decentralized, and encrypted protocols.

A fully open source, open standard, decentralized "super app" including a secure, encrypted Matrix compatible messenger based off of the Element Messenger, and an Ethereum crypto wallet and web3 browser based off of Alpha Wallet.

2Gather 6 Jul 25, 2022
An open source Hacker News client for Android.

Hacker News Come chat with us on Gitter.im! An open source Hacker News client for Android phones & tablets. Available on the Google Play Store How to

Matthew Bishop 227 Dec 11, 2022
An open source clone of a famous flappy bird game for Android using AndEngine

OpenFlappyBird An open source clone of a famous flappy bird game for Android using the amazing AndEngine History When the original Flappy Bird game wa

Dean Wild 299 Dec 26, 2022
A Free, Fully Fledged, Open-Source Music Player for Android

Turtle Player Free, Fully Fledged & Open-Source. The Music Player for Android. Turtle Player is designed to be a fun and unique app for playing your m

Edd Turtle 178 Nov 18, 2022
Freegemas libGDX is an Android and Java desktop port of Freegemas, which in turn is an open source version of the well known Bejeweled.

freegemas-gdx Freegemas libGDX is an Android, HTML 5 and Java desktop port of Freegemas, which in turn is an open source version of the well known Bej

David Saltares 144 Jun 21, 2022
Open source Imgur Android App

Opengur NO LONGER UNDER ACTIVE DEVELOPMENT Open source Imgur Android App Want to become a beta tester? Click Here! #Features Built in native java Nati

Kenny 324 Nov 22, 2022
Open source Imgur Android App

Opengur NO LONGER UNDER ACTIVE DEVELOPMENT Open source Imgur Android App Want to become a beta tester? Click Here! #Features Built in native java Nati

Kenny 324 Nov 22, 2022
Freegemas libGDX is an Android and Java desktop port of Freegemas, which in turn is an open source version of the well known Bejeweled.

freegemas-gdx Freegemas libGDX is an Android, HTML 5 and Java desktop port of Freegemas, which in turn is an open source version of the well known Bej

David Saltares 144 Jun 21, 2022
Free and open source manga reader for Android.

Build Stable Weekly Preview Contribute Support Server Tachiyomi Tachiyomi is a free and open source manga reader for Android 5.0 and above. Features F

Tachiyomi 20.4k Jan 9, 2023
Open source Crypto Currency Tracker Android App made fully in Kotlin

CoinBit CoinBit is a beautiful CryptoCurrency app, completely open sourced and 100% in kotlin. It supports following features Track prices of over 300

Pranay Airan 50 Dec 5, 2022
A sample Android app which showcases advanced usage of Dagger among other open source libraries.

U+2020 A sample Android app which showcases advanced usage of Dagger among other open source libraries. Watch the corresponding talk or view the slide

Jake Wharton 5.7k Dec 27, 2022
Secret Codes is an Open Source application that allows you to browse through hidden codes of your Android phone.

####Secret Codes is an Open Source application that allows you to browse through hidden codes of your Android phone. This application will scan throug

Simon Marquis 251 Jan 6, 2023
Tachiyomi 20.4k Jan 9, 2023
AdAway is a free and open source ad blocker for Android.

AdAway AdAway is an open source ad blocker for Android using the hosts file and local vpn. For more information visit https://adaway.org Installing Th

null 4.9k Jan 7, 2023
A secure, open source web browser for Android.

SmartCookieWeb A secure, free and open source WebView-based web browser for Android. Beta Releases • Docs • Website Important note: Google recently an

null 224 Jan 1, 2023