Original query:

Gather Merge  (cost=514303.43..514320.93 rows=150 width=289) (actual time=11213.878..11284.626 rows=3455 loops=1)
   Workers Planned: 2
   Workers Launched: 2
   ->  Sort  (cost=513303.40..513303.59 rows=75 width=289) (actual time=11207.337..11207.720 rows=1152 loops=3)
         Sort Key: c.id DESC
         Sort Method: quicksort  Memory: 262kB
         ->  Nested Loop Left Join  (cost=114919.55..513301.07 rows=75 width=289) (actual time=2871.651..11205.041 rows=1152 loops=3)
               ->  Hash Join  (cost=114919.26..513277.08 rows=75 width=297) (actual time=2868.383..11176.336 rows=1152 loops=3)
                     Hash Cond: (pcs.time_zone_id = tz.id)
                     Join Filter: ((timezone((tz.abbr)::text, c.call_datetime) >= '01/01/2016 00:00:00'::timestamp without time zone) AND (timezone((tz.abbr)::text, c.call_datetime) <= '05/30/2016 23:59:59'::timestamp without time zone))
                     Rows Removed by Join Filter: 15271
                     ->  Hash Join  (cost=114917.95..513273.88 rows=677 width=301) (actual time=2868.200..11150.117 rows=16423 loops=3)
                           Hash Cond: (c.property_id = pcs.property_id)
                           ->  Parallel Bitmap Heap Scan on calls c  (cost=114111.18..512145.57 rows=122488 width=297) (actual time=2855.503..11114.782 rows=16425 loops=3)
                                 Recheck Cond: (((property_id = ANY ('{103618,264930,93367,189068}'::integer[])) OR (property_id IS NULL)) AND (cid = 3049))
                                 Filter: ((is_test_call = 0) AND (is_auto_detected = 0) AND (call_type_id = ANY ('{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48}'::integer[])) AND (call_result_id = ANY ('{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141}'::integer[])))
                                 Rows Removed by Filter: 4
                                 Heap Blocks: exact=14659
                                 ->  BitmapAnd  (cost=114111.18..114111.18 rows=409051 width=0) (actual time=2829.751..2829.751 rows=0 loops=1)
                                       ->  BitmapOr  (cost=33484.21..33484.21 rows=3254186 width=0) (actual time=863.511..863.511 rows=0 loops=1)
                                             ->  Bitmap Index Scan on idx_calls_property_id  (cost=0.00..471.90 rows=45552 width=0) (actual time=50.511..50.511 rows=49282 loops=1)
                                                   Index Cond: (property_id = ANY ('{103618,264930,93367,189068}'::integer[]))
                                             ->  Bitmap Index Scan on idx_calls_property_id  (cost=0.00..32865.32 rows=3208634 width=0) (actual time=812.995..812.996 rows=3169821 loops=1)
                                                   Index Cond: (property_id IS NULL)
                                       ->  Bitmap Index Scan on idx_calls_ivr_menu_action_id  (cost=0.00..80553.23 rows=7146089 width=0) (actual time=1876.423..1876.423 rows=7149597 loops=1)
                                             Index Cond: (cid = 3049)
                           ->  Hash  (cost=795.88..795.88 rows=871 width=12) (actual time=12.660..12.660 rows=870 loops=3)
                                 Buckets: 1024  Batches: 1  Memory Usage: 46kB
                                 ->  Index Scan using uk_property_call_settings_cid_property_id on property_call_settings pcs  (cost=0.42..795.88 rows=871 width=12) (actual time=0.979..12.166 rows=870 loops=3)
                                       Index Cond: (cid = 3049)
                     ->  Hash  (cost=1.14..1.14 rows=14 width=8) (actual time=0.029..0.029 rows=14 loops=3)
                           Buckets: 1024  Batches: 1  Memory Usage: 9kB
                           ->  Seq Scan on time_zones tz  (cost=0.00..1.14 rows=14 width=8) (actual time=0.016..0.019 rows=14 loops=3)
               ->  Index Scan using pk_call_phone_numbers on call_phone_numbers cpn  (cost=0.29..0.32 rows=1 width=8) (actual time=0.023..0.023 rows=1 loops=3455)
                     Index Cond: (id = c.call_phone_number_id)