Here is one solution for syncing android to your own caldav/carddav system (like is available in owncloud and the likes!).
It is tested also with my own project: Complete email server!
All you will need for this:
- A working caldav/carddav server
- The url and login data for an account on that server
- A nice calendaring app. The one in andriod usually is rubbish (at least, on my phone it is).
One i like: Onecalendar by code spark: https://www.onecalendar.nl/download/store.
It is available for free on sereral platforms, including android, and has CALDAV built right in (next to other services like google, exchange server etc..).
If you don't like onecalendar for any reason, you can simply use your preferred calendar app. If this app does not have CALDAV built in, you will need another app to be able to sync with the CALDAV server.
There are 2 possible solutions for this:
It kindof looks like the guy posting open sync ripped the code off of davdroid. I tried both, davdroid seems to be a little bit more stable but both seem to do the job just fine eventually.
Setting up caldav with onecalendar is simple!
- click the hamburger menu on the top left
- click 'accounts'
- click 'add account'
- select 'CalDav'
- enter your username and password
- enter the correct url for your caldav server
- onecalendar will try to autodiscover everything
- if everything is ok, a list will show with the calendars that are found on the server for your account
- click the checkmark and then select done
With that, all is set to go!
While you are at it, you can add other accounts aswell like google, outlook etc. to have everything in one calendar..
Other settings you might want to look at is the sync frequency etc, but that's up to your preferences.
Setting things up is pretty straight forward. As stated, you will need account information before you start.
Then, install one of the sync apps listed above (NOT both!! it will make a mess of things!!)
Next, you want the calendar app installed. Here, we use 'simple calendar' and will show how to set things up using these apps.
- Setup of caldav syncing
- Start up either davdroid or open sync. The setup is exactly the same on both.
- Click the '+' at the lower right
- Login using url and user name
- Enter your base url, username and password (given to you by the server administrator)
- If everything is correct, it will start authenticating and fetch the available calendars etc.
- It will show you the account in the main screen. Click on that, and activate (put a check next to it) all the calendars in the list and click the round arrows at the top to sync.
- If this passes the sync will work automatically from now on so you can close the app.
-
Setup of the calendar app
This depends a bit on the used app, but with the mentioned simple calendar you have to tell it to show the calendars:
- Start the app
- Go to the settings using the 3 dot menu.
- While there, you might click 'add holidays' and select your country. The calendar will then show the local holidays.
- If you want, select add contact birthdays also (you do have to allow the app to access your contacts)
- Then click 'settings'
- Scroll down until you see the option: Caldav sync, and activate this (it will ask you for access to your calendar data, allow this!)
- If it doesn't come up with a new screen with all your calendars, click 'manage synced calendars
- Check the list, you should see the account you made in the caldav sync app. Activate all the calendars you see.
- Click on 'ok' and you are all set
Everything should be set and updated on your calendar now!
If in the future something changes (for instance: a new calendar is added to your account), you do need to update things to make it show up on your calendar.
It is a simple procedure:
- In the caldav sync app (open sync or davdroid), click on the account.
- You see 2 blocks: carddav and caldav. On the caldav one, click on the hamburger menu. It will show an option 'refresh calendar list'.
- Click that option and it will start updating the list.
- Now you go to the calendar app and check the calendar so it will show up on the app. In simple calendar this is done by:
- Start the app and go to the 3 dot menu, then settings.
- Scroll down to caldav, and click the 'manage synced calendars' option.
- You should see the new calendar list. Click on the calendars to display and you are done.
You use the calendar just as you would before! Only make sure that when you add an event to the calendar that you select the correct calendar to put it in. Anything other than that is exactly the same!
- simple calendar by simple mobile tools
Simple and easy to use calendar app.
- Pros: it is absolutely free, no catches or in-app purchases.It does have local holidays and can display contact birthdays.
- Cons: it does not automatically add any new calendars to display, you will have to add them in the settings menu. Also, using davdroid etc. all updates are sent twice! Once from the calendar and once from davdroid/open sync.
- Cloudcal
- Pros: it will display all known calendars by default. So if you update the calendar list in davdroid/open sync, they will show up without doing anything in the calendar app. It does have a unique display of things.
- Cons: it's not entirely free and keeps whining about wanting access to your location at every single startup if you don't let it have it.