Google Calendar

Why Google Calendar?

Sleep as Android integrates with Google Calendar, so:

  • alarms can be automatically disabled for public holidays (only for your main calendar)
  • alarms can take your calendar events into account (only for your main calendar)
  • sleep records automatically appear in your calendar


Enable Google Calendar integration in Settings > Services > Google Calendar.

REQUIREMENTS: Google Calendar needs to be installed on your device, also Android version has to be at least 4.0.


TIP: Going on vacation? To disable alarms for the duration of your away time, add a “#holiday” event to your Google Calendar. Don’t forget to turn on “Disable repeating alarm for holidays”!

Disable repeating alarms for holidays

Automatically disables repeating alarms being scheduled on public holiday. Whenever this happens, you will get standard android notification with possibility to revert the action.

CONFIGURATION: Note that most users should have already subscribed public holidays to their calendar. If it is not your case, follow the next instructions:
Click the little downward arrow under “other calendars” on the left side of the default calendar view (beside “add”). Click on “browse interesting calendars” and you should be able to see and subscribe to it.

BETA: To add a personal holiday manually, create an event with “#holiday” in either title or description in your main calendar.

WARNING: Some holidays in the Google public holiday calendar may not apply to you – the calendar is not perfect. Please add a whole-day event called #notholiday if you find a holiday in the Google holiday calendar that you do not recognize as holiday.

Reschedule alarm

Whenever your calendar event collides with your next active alarm, Sleep as Android will advance that alarm in order to help you wake up earlier and be in time for event.

In Settings > Services > Google Calendar > Reschedule alarm, set the time to which you want to reschedule the alarm.

Whenever the rescheduling happens, you will get a status bar notification with possibility to revert the action.

Per-event rescheduling

Reschedule times can be also set per-event. When you create the event in your calendar, just insert an expression in the following format into description or title of the event.

  • #alarm-30  (advances the alarm for 30 minutes)
  • #alarm-30m (advances the alarm for 30 minutes)
  • #alarm+20 (postpones the alarm for 20 minutes)
  • #alarm+20h (postpones the alarm for 20 hours)
  • #alarm-1h (advances the alarm for 1 hour)
  • #alarm+2h30m (postpones the alarm for 2 hours 30 min)
  • #alarm+2h30 (postpones the alarm for 2 hours 30 min)
  • #alarm+2:15 (postpones the alarm for 2 hours 15 min)


When this option is enabled, your past records will be loaded into your Google Calendars that are either called Sleep, or have #sleep somewhere in their name. This is currently limited up to 1 year. Moreover all new sleep records are automatically synchronized with Google Calendar.

IMPORTANT: In order to make the synchronization functional, you will have to create custom calendar with the name Sleep and make it Enabled (checked)! Here is a link how to do it.

When does sync occur?

There are two sync methods:

  • normal sync: saves data for the past 2 weeks. Happens everytime sleep tracking ends, or when you create a sleep record manually. Also everytime you start the app, if a sync did not happen in the past 24 hours.
  • full sync: saves data for the past 1 year. Can be triggered from Settings > Services > Google Calendar (you have to toggle off and on) Upload (button in the lower right corner)


Google Calendar integration needs two permissions:

  • Calendar, so the app can add and edit calendar entries
  • Contacts, so the app can retrieve user accounts (we do not touch your contacts in any way – there is no other way to get access to user accounts other than the Contacts permission)