How do I change the colour of Contact Birthdays in Calendar?

I’ve searched the documentation for a solution, but can’t find one.

I’ve got two calendars, the default “Personal” and a second one I created for “Public Holidays”. I’m able to “Edit” them to change the colour they’re displayed in. No problem there.

Unfortunately “Contact Birthdays” is a subscription, not a calendar, so it doesn’t have the option to “Edit” it. It defaulted to a pale yellow which doesn’t contrast well against the text (or background), which makes it hard to read.

While I can choose the colour it’s displayed in on Thunderbird, it’s showing as pale yellow via the web interface and also when sync’d to my phone.

Is there a way to change the colour Contact Birthdays displays in? If there’s no easy way, I’m willing to edit the hex value in a file on the server or even an entry in MySQL (if that’s where it’s stored).

Does anyone know how to change the colour of a subscription in the Calendar app on Nextcloud?

1 Like

Not at this time.

Some issues in the Calendar issue tracker refer to this topic:

Bummer, I was worried that would be the answer.

I thought I searched that issues list, I must have searched for colour instead of color. D’oh!

How is the pale yellow chosen by the calendar app? Is it hard-coded somewhere? Somewhere editable by the sysadmin? :slight_smile:

Go to the *PREFIX*calendar table and change the calendarcolor of the desired contact_birthdays calendar.

You absolute legend! :smile: That was enough to allow me to fix it!

I logged into MySQL as the appropriate user, and switched to my Nextcloud database. From there, I checked out the tables. I initially looked into oc_calendarsubscriptions but it was empty. I then looked into oc_calendars and there it was!

select * from oc_calendars;

That showed me exactly what I needed to see. I then narrowed down my search to Contact birthdays.

select calendarcolor from oc_calendars where displayname='Contact birthdays';

It came up twice for some reason. The crappy default yellow is #FFFFCA. From there, I used the Gimp to choose a new colour, which was a deep red #800000.

UPDATE oc_calendars SET calendarcolor='#800000' WHERE displayname='Contact birthdays';

Done! I refreshed the page and the birthdays are now visible!!

The changes didn’t seem to want to come through to my phone, though. I tried refreshing and restarting my phone, but it kept displaying as white text on pale yellow. I removed the account, and recreated it. It worked! I can now see my contact’s birthdays on my phone :slight_smile:


On Android, it is dependent on the setting of your CalDAV connector. :stuck_out_tongue_winking_eye:

Ah, that makes sense. I honestly didn’t consider different connectors making much of a difference. I’m using “Easy DAV for ownCloud”.

I know connectors like DAVdroid are usually recommended, but when I first got into ownCloud I was using self-signed certificates, which DAVdroid refused to work with. There weren’t many connectors that would work with self-signed certificates, and I tried quite a few. For quite a while I used Caldav Sync Adapter and Carddav Sync Adapter.

After upgrading to Let’s Encrypt certificates, I eventually settled on the easy-to-use “Easy DAV for ownCloud”.

Even though I’ve now upgraded to Nextcloud and I’m using Let’s Encrypt certificates, I’m a creature of habit. If Easy DAV stops working or causes trouble, I’ll switch to DAVdroid, but for now things are working fine.

Thanks for your help Thomas. I know the colour of a single calendar isn’t a huge problem in the big scheme of things, but you really helped make life that little bit better (or at least less sucky! :slight_smile: )

1 Like