Convert Figma logo to code with AI

Etar-Group logoEtar-Calendar

Android open source calendar

2,017
392
2,017
395

Top Related Projects

Thunderbird for Android – Open Source Email App for Android (fka K-9 Mail)

A simple calendar with events, tasks, customizable colors, widgets and no ads.

Syncthing-Fork - A Syncthing Wrapper for Android.

3,805

:phone: The ownCloud Android App

A podcast manager for Android

Quick Overview

Etar-Calendar is an open-source calendar application for Android devices. It offers a clean, material design interface and provides essential calendar functionalities while respecting user privacy. Etar is designed to be a simple yet effective alternative to proprietary calendar apps.

Pros

  • Privacy-focused: Does not collect user data or require unnecessary permissions
  • Material design interface: Clean and intuitive user experience
  • Open-source: Allows for community contributions and transparency
  • Lightweight: Minimal resource usage compared to some alternatives

Cons

  • Limited advanced features: May lack some complex functionalities found in more comprehensive calendar apps
  • Smaller user base: Less widespread adoption compared to popular proprietary alternatives
  • Potential for slower updates: Depends on community contributions and maintainer availability
  • Limited integration: May not integrate as seamlessly with other services as some proprietary options

Getting Started

To use Etar-Calendar:

  1. Install the app from the Google Play Store or F-Droid.
  2. Open the app and grant necessary permissions.
  3. Add your calendar accounts (Google, Exchange, etc.) or use it as a local calendar.
  4. Start adding events and managing your schedule.

For developers interested in contributing:

  1. Fork the repository on GitHub.
  2. Clone your fork: git clone https://github.com/your-username/Etar-Calendar.git
  3. Set up the project in Android Studio.
  4. Make changes and submit pull requests to contribute to the project.

Competitor Comparisons

Thunderbird for Android – Open Source Email App for Android (fka K-9 Mail)

Pros of Thunderbird Android

  • More comprehensive email and calendar integration
  • Backed by Mozilla, potentially more resources for development
  • Supports add-ons for extended functionality

Cons of Thunderbird Android

  • Larger app size due to more features
  • Potentially more complex user interface
  • May have a steeper learning curve for new users

Code Comparison

Etar Calendar:

public class Event implements Parcelable, Cloneable {
    private long mId;
    private int mCalendarId;
    private String mOrganizer;
    private String mTitle;
}

Thunderbird Android:

data class Account(
    val id: String,
    val displayName: String,
    val email: String,
    val incomingServerSettings: ServerSettings,
    val outgoingServerSettings: ServerSettings
)

The code snippets show different approaches to data modeling. Etar Calendar uses a Java class with individual fields, while Thunderbird Android employs Kotlin's data class for a more concise representation. Thunderbird's approach may lead to more maintainable and readable code, especially for complex data structures.

A simple calendar with events, tasks, customizable colors, widgets and no ads.

Pros of Simple-Calendar

  • More frequent updates and active development
  • Wider range of customization options and features
  • Available in more languages (30+)

Cons of Simple-Calendar

  • Larger app size due to additional features
  • May be overwhelming for users seeking a simpler interface
  • Some features require a paid upgrade

Code Comparison

Both projects are written in Kotlin, but their code structure differs slightly:

Simple-Calendar:

class MonthViewActivity : SimpleActivity() {
    private lateinit var binding: ActivityMonthViewBinding
    private var mDayCode = ""
    private var mSelectedDayCode = ""

Etar-Calendar:

class MonthByWeekFragment : SimpleDayPickerFragment() {
    private lateinit var mMonthByWeekAdapter: MonthByWeekAdapter
    private var mSelectedDay: Time? = null

Simple-Calendar uses view binding, while Etar-Calendar relies on more traditional fragment implementations. Simple-Calendar's codebase is generally more extensive due to its broader feature set.

Syncthing-Fork - A Syncthing Wrapper for Android.

Pros of syncthing-android

  • Offers real-time file synchronization across devices
  • Provides end-to-end encryption for secure data transfer
  • Supports custom folder sharing and selective sync

Cons of syncthing-android

  • More complex setup compared to a simple calendar app
  • Requires running the Syncthing service in the background
  • May consume more battery due to continuous sync operations

Code Comparison

Etar-Calendar (Java):

public class Event implements Parcelable {
    private long mId;
    private int mCalendarId;
    private String mTitle;
    private String mDescription;
    private String mEventLocation;
}

syncthing-android (Kotlin):

data class Folder(
    val id: String,
    val label: String,
    val path: String,
    val type: String,
    val devices: List<Device>
)

The code snippets show that Etar-Calendar uses Java and focuses on event-related data structures, while syncthing-android is written in Kotlin and deals with folder synchronization concepts. Etar-Calendar's code is more specific to calendar functionality, whereas syncthing-android's code reflects its file synchronization features.

3,805

:phone: The ownCloud Android App

Pros of owncloud/android

  • Offers cloud synchronization and file sharing capabilities
  • Provides a more comprehensive suite of features for document management
  • Integrates with ownCloud server for enhanced functionality

Cons of owncloud/android

  • More complex and potentially resource-intensive than Etar-Calendar
  • Requires an ownCloud server setup for full functionality
  • May have a steeper learning curve for users primarily interested in calendar features

Code Comparison

Etar-Calendar (Event creation):

public void onCreateEvent(View v) {
    Intent intent = new Intent(Intent.ACTION_INSERT);
    intent.setData(CalendarContract.Events.CONTENT_URI);
    startActivity(intent);
}

owncloud/android (File upload):

public void uploadFile(File file) {
    OCFile ocFile = new OCFile(file.getAbsolutePath());
    ocFile.setFileLength(file.length());
    ocFile.setMimetype(MimeTypeMap.getSingleton().getMimeTypeFromExtension(
            MimeTypeMap.getFileExtensionFromUrl(file.getAbsolutePath())));
    mUploadClient.uploadFile(ocFile, false);
}

The code snippets highlight the different focus areas of the two projects. Etar-Calendar emphasizes calendar-specific functionality, while owncloud/android deals with file management and synchronization.

A podcast manager for Android

Pros of AntennaPod

  • More active development with frequent updates and contributions
  • Larger community and user base, resulting in more feedback and bug reports
  • Broader feature set, including podcast playback and management

Cons of AntennaPod

  • More complex codebase due to additional features
  • Potentially steeper learning curve for new contributors
  • Larger app size and resource usage

Code Comparison

AntennaPod (Java):

public class PlaybackService extends MediaBrowserServiceCompat {
    @Override
    public BrowserRoot onGetRoot(@NonNull String clientPackageName, int clientUid, Bundle rootHints) {
        return new BrowserRoot(getString(R.string.app_name), null);
    }
}

Etar-Calendar (Kotlin):

class CalendarProvider : ContentProvider() {
    override fun onCreate(): Boolean {
        return true
    }
}

AntennaPod uses Java and implements a MediaBrowserServiceCompat for podcast playback, while Etar-Calendar uses Kotlin and extends ContentProvider for calendar data management. AntennaPod's codebase is more focused on media handling, whereas Etar-Calendar deals with calendar-specific functionality.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

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.

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

Known issues with the ICS import feature

Etar can import ICS files, for instance, received in invitation emails. The import feature is unstable and has a list of known bugs. Refer to https://github.com/Etar-Group/Etar-Calendar/pull/653 as a reference to those bugs. Use it with caution, especially, if your calendar provider automatically sends out invitation emails.

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 :app:assembleDebug

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.